青岛开发区做网站设计的,网站建设好的图片,南通网站建设教程,北京门头沟山洪暴发一、aop基础知识
Spring AOP 详细深入讲解代码示例
二、spring/spring boot/spring cloud中出现的注解/类与概念的对应
Aspect#xff1a; 标注当前MyAspect是一个切面类#xff0c;–》对应切面的概念#xff0c;在切面类中有用Before等注解修饰的方法作为advice,也有用…一、aop基础知识
Spring AOP 详细深入讲解代码示例
二、spring/spring boot/spring cloud中出现的注解/类与概念的对应
Aspect 标注当前MyAspect是一个切面类–》对应切面的概念在切面类中有用Before等注解修饰的方法作为advice,也有用pointPointcut修饰的方法去定义切点还会在方法中使用的ProceedingJoinPoint类 和 JoinPoint类 对应切面的连接点 SpringAOP中的JointPoint和ProceedingJoinPoint使用详解附带详细示例
三、切点表达式
//定义切点表达式
Pointcut(execution(* com.itheima.anno.*.*(..)))
public void pointcut(){}第15章-Spring AOP切点表达式Pointcut详解
四、不添加EnableAspectJAutoProxy–来自GPT
在Spring Framework的应用中EnableAspectJAutoProxy注解启用了对AspectJ注解切面如使用Aspect注解的类的支持进而允许Spring通过代理为Beans提供面向切面的编程AOP功能。对于大部分基于Spring Boot的应用实际上并不需要显式地添加EnableAspectJAutoProxy注解。这是因为Spring Boot自动配置会默认开启这项功能。让我们来详细了解一下Spring Boot自动配置在这方面是如何工作的。
Spring Boot的自动配置行为 对于使用spring-boot-starter-aop依赖的Spring Boot应用AOP支持是通过自动配置开启的这一点体现在AopAutoConfiguration中。这样就不需要开发者显式地在自己的配置类中添加EnableAspectJAutoProxy。
具体来说spring-boot-starter-aop提供的AopAutoConfiguration会自动注册一个AnnotationAwareAspectJAutoProxyCreator的Bean到Spring容器中。这个Bean是启用AspectJ支持的关键意味着Spring Boot会自动处理使用Aspect注解的类并按照这些类中定义的切面逻辑对目标方法进行增强例如应用前置、后置或环绕通知等。
如果不添加EnableAspectJAutoProxy 在Spring Boot应用中如果你没有显式添加EnableAspectJAutoProxy
没有影响在大多数情况下不显式添加EnableAspectJAutoProxy对应用没有影响。这是因为Spring Boot的AopAutoConfiguration已经为你启用了AspectJ的自动代理支持。你的AOP逻辑如Before、AfterReturning、Around、AfterThrowing注解标注的方法应该会按预期工作。
特定情景下的差异显式添加EnableAspectJAutoProxy仍然可以在特定情境下提供灵活性。例如如果你需要使用AspectJ编译时织入而不是在运行时通过Spring AOP的代理机制或者需要精细控制AOP的某些行为如proxyTargetClass属性。EnableAspectJAutoProxy(proxyTargetClass true)可以强制使用CGLIB代理而不是JDK动态代理无论接口的存在与否这在处理没有接口的类时可能很有用。
小结 总结来说在Spring Boot应用中通过spring-boot-starter-aop依赖引入AOP支持通常是足够的无需显式添加EnableAspectJAutoProxy。只在有特定需求时才可能需要显式使用此注解来控制AOP的细节行为。这体现了Spring Boot“约定大于配置”的设计理念尽最大可能简化Spring应用的开发。