@EnableAspectJAutoProxy的exposeProxy属性和proxyTargetClass属性
Posted 八阿哥克星
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@EnableAspectJAutoProxy的exposeProxy属性和proxyTargetClass属性相关的知识,希望对你有一定的参考价值。
把@EnableAspectJAutoProxy的exposeProxy设为true,是暴露代理对象的意思,也就是可以通过设置这个属性,用AopContext.currentProxy()的方式获取到当前的代理对象,可以解决同一类中两个方法相互调用是aop不生效的问题
@Component
public class MessageService
public String showMessage(String info)
System.out.println("OtherInfoServcie-showMessage展示信息:" + info);
//this.formartMsg(info)这样调用,aop增强不会生效
//通过设置@EnableAspectJAutoProxy的exposeProxy设为true,再使用AopContext
//的静态方法获取当前的代理对象
((MessageService) AopContext.currentProxy()).formartMsg(info);
return null;
public String formartMsg(String info)
System.out.println("OtherInfoServcie-formartMsg对象消息" + info + "进行格式化");
return info;
proxyTargetClass=true的作用是要生成代理对象时强制使用CGLIB的方式。
以上是关于@EnableAspectJAutoProxy的exposeProxy属性和proxyTargetClass属性的主要内容,如果未能解决你的问题,请参考以下文章
@EnableAspectJAutoProxy的exposeProxy属性和proxyTargetClass属性
@EnableAspectJAutoProxy的exposeProxy属性和proxyTargetClass属性