spring aop 2.0

简介

sping aop 是基于代理方式实现的,运行时编织的aop框架。spring aop 2.0 为用户自定aspect引入了更简单但更强大的方式,同时支持schema-based的方式和@AspectJ anotation风格。 spring aop 2.0还保持了向下兼容性,完全支持aop 1.2的使用方式和底层的aop api。

spring aop相关概念和一般意义上的aop保持一致。

aspect 横切多个业务类的功能,一般是日志,事务等。在spring aop中是一个POJO或者带有@AspectJ标注的POJO

joint point 程序执行中的某个点,在spring aop中只有method的运行时

advice 和某个joint point关联的动作,分before, after returning, after throwing, after, around

pointcut joint point谓词

AOP proxy

spring aop 2.0对接口风格的对象使用JDK动态代理,对没有接口的对象使用CGLIB。强制spring使用CGLIB的方式是

<aop:config proxy-target-class="true"> 
    <!-- other beans defined here... -->
</aop:config>

在spring 3.2之后的版本不需要额外引入cglib.jar

需要注意的是,如果对象实现了接口,而没有使用强制使用CGLIB的话,spring的动态代理实现了所有的接口,ctx.getBean(#id)只能强制转换为某个接口,如果强制转换为class类型,会报类型错误(包括@Autowired@Resource方式实现的)

例子

例子参见examples on github

转载于:https://my.oschina.net/u/2558702/blog/598510

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值