Spring AOP代理controller类

1、两种动态代理方式:

java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。

cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理

java动态代理要求目标类必须实现了接口,cglib动态代理则要求目标类必须有默认的构造方法。


2、Spring下使用动态代理对Controller切面

因为controller没有实现接口,因此必须使用cglib进行动态代理。

<!-- 启动对@AspectJ注解的支持 -->  
    <aop:aspectj-autoproxy <span style="color:#FF0000;">proxy-target-class="true"</span>/>
proxy-target-class为true则spring会强制使用cglib代理,否则使用java动态代理。

要实现对controller进行代理,需要将aspectj 和springmvc配置放到一个配置文件中,如下:

<!-- 启动扫描所有的controller,service -->
    <context:component-scan base-package="com.ec.core.controller"/>
    
    <bean id="methodLog" class="com.ec.base.log.MethodLogAspectJ"/>
    
    <!-- 启动对@AspectJ注解的支持 -->  
    <aop:aspectj-autoproxy proxy-target-class="true"/>



 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值