AOP的注解配置与xml文件配置

一,注解配置方式
1.五种增强的配置
详见五种增强一文点击这里查看
2.在五种增强(或者说是通知)中需要有切入点表达式,而切入点表达式也可以用注解配置:

    @Pointcut("execution(public int *(..))")//这个空方法是为了解决注解内切入点表达式复用的问题
	public void p() {
		
	}

然后在原来写切入点表达式的地方就可以用“p()”代替。
3.@order注解
该注解用来在存在多个有@Aspect注解修饰的类(切面类)时确定执行顺序
例如:
在这里插入图片描述
在这里插入图片描述
这两个切面类的前置增强方法均匹配到同一个目标方法时就会按照@order注解规定的顺序执行。@order注解值越小,优先级越高

二,xml配置方式
这里也有两种方式:
1.<aop:aspectj-autoproxy proxy-target-class="false"></aop:aspectj-autoproxy><!-- 程序中注解配置 -->
该种方式是跟注解配置方式搭配使用的,这样配置时就是用注解配置aop
2.

<bean id="aspect" class="com.jd.calculator.Aspect"></bean>
<bean id="aspect2" class="com.jd.calculator.Aspect2"></bean>

<aop:config proxy-target-class="false">
		<aop:pointcut expression="execution(public int *(..))" id="point"/>
		<aop:aspect ref="aspect" order="1">
			<aop:before method="before" pointcut-ref="point"/>
		</aop:aspect>
		
		<aop:aspect ref="aspect2" order="2">
			<aop:before method="before" pointcut-ref="point"/>
		</aop:aspect>
</aop:config>

这种配置方式需要先配置切面类的bean,然后在按上面配置,这个例子中只配置了前置增强(其他增强也同理)。该种配置方式不用在程序中使用相关注解,而且程序中原有的相关注解也会全部失效。比如这个例子在xml中配置了两个切面类,另外还有一个切面类是在程序中使用注解配置的,此时就用注解配置的切面类不会起效,只有两个在xml中配置的切面类才会起效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值