@EnableAspectJAutoProxy
时间: 2023-10-08 20:05:47 浏览: 93
@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容器中。
相关问题
@enableaspectjautoproxy
AspectJ 是一种面向切面编程 (AOP) 框架,它可以通过使用 @AspectJ 注解自动激活 @AspectJ 支持。
@EnableAspectJAutoProxy 注解是 Spring 框架中的注解,用于启用 AspectJ 自动代理。使用这个注解可以在 Spring 应用程序中使用 AspectJ 的 @Aspect 注释。
简单来说 @EnableAspectJAutoProxy 是开启AspectJ AOP 的自动代理,使用它可以在spring中使用AspectJ。
@Configuration @EnableAspectJAutoProxy
@Configuration @EnableAspectJAutoProxy是用于启用Spring的AOP自动代理功能。@EnableAspectJAutoProxy注解可以放置在一个带有@Configuration注解的类上,用于指示该类是一个配置类,并且启用了AspectJ的自动代理。该注解还可以用于指定一些属性,例如proxyTargetClass和exposeProxy等。
proxyTargetClass属性用于指定是否使用CGLIB动态代理,默认为false。如果设置为true,则会使用CGLIB动态代理来创建代理对象;如果设置为false,则会使用JDK动态代理。
exposeProxy属性用于指定是否将代理对象暴露给AOP切面中的方法,默认为false。如果设置为true,则可以通过AopContext.currentProxy()来获取代理对象。
除了@Configuration @EnableAspectJAutoProxy之外,还可以使用@EnableTransactionManagement注解来启用注解事务。这个注解用于开启Spring的声明式事务管理功能。
阅读全文