controllerAOP管理设计
结构
为什么要设计这个接口
-
对controller的方法AOP处理,不同的开发人员因为对业务的理解不同,做很多处理,定义了很多切点,最后形成维护了很多功能的AOP管理。案例如下
- 开发1:实现一个注解a,调用a注解的方法有起到防重复的功能。开发1定义一个AOP切面a_aop,切点是整个controller层
- 开发2:实现一个注解b,调用b注解的方法可以起到加签验证功能。开发2定义一个AOP切面b_aop,切点是整个controller层
- 开发3:实现一个注解c,调用c注解的方法可以起到参数加密验证功能。开发3定义一个AOP切面c_aop,切点是整个
- 开发4,开发5…
-
从上面可以看到,整个项目有很多切面,其中很多切面的切点都是一样的,这样代码执行a_aop还有执行x_aop切面,最后才执行业务代码,非常影响性能,且代码维护成本过高。
设计这个接口的作用
- 简化AOP切面的管理,降低代码维护成本
- 对外提供一个总接口,所有子类一一对应相应的注解方法
- 后期扩展按注解扩展
目前功能
- 处理controller方法是否执行
- 处理controller方法执行前需要发生的一些动作,比如说缓存,当前还没有使用