
AOP
雪落南城
这一场人间流浪,长随步履温柔相候
展开
-
一个方法被多个AOP切面会发生什么?
背景 笔者负责的项目中,对外接口的实现类中,许多接口注解了N个方法,项目中利用AOP对方法进行统一日志输出、异常捕获、业务并发锁等 那么,一个方法有多个AOP切面,会相互干扰吗?其执行顺序是怎样的?会生成多个代理类吗? 让我们带着问题,进行实战一探究竟~ 示例 ...原创 2022-01-14 20:00:58 · 2077 阅读 · 3 评论 -
记一次AOP失效
项目使用了AOP来自动重试调用失败的方法,再一次更新中,发现某个类型的重试失效了,具体原因是要横切的注解注释在了一个子方法中,而实际的调用中,上游只会调用A方法 形如: public class ss { public void A() { B(); } @XXXAnnotation public void B() { } } 因为AOP是通过生成一个代理对象来执行方法调用的,调用未横切的方法,会走到正常对象的方法调用,所以调到子方法时,没有使用代理对象的增强方法了; 唉 还是基础差点事啊。。。 ...原创 2020-12-08 17:46:20 · 160 阅读 · 0 评论 -
SpringAOP-切点为注解
使用 1、触发AOP可以是类名、方法名、参数、返回值类型,也可以是注解 注解法 首先定义一个无参数注解 @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface CatTransaction { } 然后定义一个横切类 @Aspect @Component public cl...原创 2019-02-28 22:53:28 · 2627 阅读 · 0 评论 -
SpringBoot使用AOP问题汇总
1、外部引入的AOP切面没有生效 由于aop的service是外部引入的(需加@Component) 故没有被注册成bean 需要手动注册一下 @Bean public CatAopService catAopService() { return new CatAopService(); } 2、横切的方法没有返回数据 只需要在切面处理的时候定义返回值即可 @CatAnn...原创 2019-03-01 15:54:57 · 797 阅读 · 0 评论 -
SpringAOP-切点为方法
1、pom文件 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> <version>1.5.8.RELEASE</version&g...原创 2019-07-04 14:18:30 · 587 阅读 · 0 评论