@EnableAspectJAutoProxy是Spring Framework中用于开启注解驱动的AOP的注解。在Spring Boot中,通过在配置类上添加@EnableAspectJAutoProxy注解来开启AOP。
@EnableAspectJAutoProxy注解的作用是在Spring应用上下文中启用AspectJ自动代理。AspectJ自动代理是通过Spring AOP服务实现的,它会对使用@Aspect注解标注的切面进行自动代理。在一个Spring应用中,只需要开启@EnableAspectJAutoProxy注解,并在需要使用切面的bean上添加@Aspect注解就可以了。
@EnableAspectJAutoProxy注解有一个proxyTargetClass属性,默认值为false,表示使用基于JDK的动态代理,如果设置为true,则使用CGLIB代理。这个属性一般不需要配置,可以根据实际情况选择合适的代理方式。
使用方法
添加@EnableAspectJAutoProxy注解,通常添加在配置类上。
``` java
@Configuration
@EnableAspectJAutoProxy
public class AppConfig {
// 其他配置
}
```
案例说明
以一个简单的日志切面为例,在方法执行前后打印日志。
定义一个切面类:
``` java
@Aspect
@Component
public class LogAspect {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Before("execution(* com.example.demo.service.*.*(..))")
public void before(JoinPoint joinPoint) {
String methodName = joinPoint.getSignature().toShortString();
logger.info("before method :" + methodName);
}
@After("execution(* com.example.demo.service.*.*(..))")
public void after(JoinPoint joinPoint) {
String methodName = joinPoint.getSignature().toShortString();
logger.info("after method :" + methodName);
}
}
```
在配置类中添加@EnableAspectJAutoProxy注解:
``` java
@Configuration
@EnableAspectJAutoProxy
public class AppConfig {
@Bean
public LogAspect logAspect() {
return new LogAspect();
}
// 其他配置
}
```
这样,当调用com.example.demo.service包下的方法时,会自动执行LogAspect中的before和after方法,根据实际情况可以在方法前后添加自定义的逻辑。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/
没人为我遮风挡雨,我就自己做自己的英雄。兔年一切好运!