一、IoC的集合属性注入
数组、list、set、map、properties
1、用property标准的set方法,数组的方式,用<array></arrat>标签,内部用<value></value>标签给定值。
2、list,用<list></list>标签,内部基本类型用value标签,对象类型用ref bean给定对象id。
3、set,用set标签,内部基本类型用value标签,对象类型用ref bean给定对象id。
4、马匹,用map标签,内部基本类型用entry 的key和value,对象类型用key-ref,value-ref。
5、properties,用props标签,内部用prop标签,属性用key对应键。
二、AspectJ
1、AspectJ为AOP的框架,spring对AspectJ提供了支持,需要引入AspectJ架包。
2、基于xml方式的配置动态代理,一种给切面类中设置好了方法,前后加入增强方法后,不需要再xml再次配置<aop:aspect>只需配置通知并加入切点即可<aop:advisor advice-ref="as" pointcut-ref="pt"/> advice-ref为通知
pointcut-ref为切点。
true开启cglib动态代理模式,false为jdk的Proxy代理模式
<aop:config proxy-target-class="true">
<aop:pointcut id="pt" expression="execution(* com.qianfeng.aop.*.*(..))"/>
<aop:advisor advice-ref="as" pointcut-ref="pt"/>
</aop:config>
3、切面类中前后没有加入增强方法时,则需要在xml中加入切面并设置增强方法的方式
<aop:config proxy-target-class="true">
<aop:aspect id="ap" ref="as">
<aop:pointcut id="pt" expression="execution(* com.qianfeng.aop.*.*(..))"/>
<aop:before method="before" pointcut-ref="pt"/>
<!--<aop:around method="around" pointcut-ref="pt"/>-->
</aop:aspect>
</aop:config>
在切面中设置切点和增强方法。execution(* 包名..(..))表达式,设置需要代理的目标类的范围。
第一个参数为方法的返回值,第二个参数为类,第三个参数*为所有的方法,
(..)代表方法的参数匹配,..为所有方法。
作者:天知地知你知我也知
链接:https://www.jianshu.com/p/299aa4294299
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。