Spring中利用java注解声明切面

Spring中利用java注解声明切面

第一步:确定在Spring的XML文件中包含AOP的命名空间:

 

        47

 

 

第二步:在Spring的XML文件中输入<aop:aspectj-autoproxy/>,将Spring中自带的“自动代理创建类”声明为一个bean,以便Spring能够根据java的注解来自动定义切面

 

第三步:定义切面类,并且给其class和method添加注解:

          jsy1

          在这里@aspect声明切面,@pointcut声明切点,@before、@afterReturning这些声明的就是通知。

 

第四步:将切面类声明为bean,两种方法:<bean>标签或者@component标注

 

第五步:如果要注解环绕通知,方法类似,用到的是@around标注:

          jsy2

 

 

 

 

 

第六步:如果要传入参数,也很简单:

          jsy3

 

第七步:标注引入(即给一个bean添加新的接口):

          jsy4

 

上面几个参数的含义是:

          jsy5

 

注意,ContestantInstructor类是一个切面,而且我们也必须把它声明成bean才能使用。@DeclareParents不能引入一个已经被声明为bean的接口,这是注解的缺陷所在,因为AspectJ并不是Spring的一个项目,所以它的注解并不了解Spring bean。

 

小结:Spring的bean是基于代理的,仅限于通知方法的调用,要使用更强的功能,需要使用传统的AspectJ切面。

 

 

转载于:https://www.cnblogs.com/hewenwu/p/3823830.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值