@EnableAspectJAutoProxy
时间: 2023-10-08 21:05:47 浏览: 89
Auto Proxy
@EnableAspectJAutoProxy是一个注解,用于启用Spring框架中的AspectJ自动代理功能。当使用@EnableAspectJAutoProxy注解时,它会在后台执行一些操作。具体来说,它通过引入AspectJAutoProxyRegistrar类来注册一些Bean。这个类是通过@Import注解导入的,它继承了ImportBeanDefinitionRegistrar接口。在注册过程中,会将AnnotationAwareAspectJAutoProxyCreator定义信息添加到IOC容器中,它的名称为"org.springframework.aop.config.internalAutoProxyCreator"。
@EnableAspectJAutoProxy注解还包含两个可选属性:
1. proxyTargetClass:控制是基于subclass-based的CGLIB动态代理还是使用基于接口的JDK动态代理。默认值为false,即默认使用JDK动态代理方式。
2. exposeProxy:控制代理的暴露方式,解决类内部方法之间调用不能使用代理的场景。默认值为false,如果设置为true,则可以通过AopContext.currentProxy()获取当前代理对象。
总结起来,@EnableAspectJAutoProxy注解的作用是启用Spring框架中的AspectJ自动代理功能,并通过注册AnnotationAwareAspectJAutoProxyCreator将其添加到IOC容器中。
阅读全文