AOP思想:
AOP(Aspect Oriented Programming)是一种面向切面的编程思想。面向切面编程是将程序抽象成各个切面,即解剖对象的内部,将那些影响了多个类的公共行为抽取到一个可重用模块里,减少系统的重复代码,降低模块间的耦合度,增强代码的可操作性和可维护性。AOP把软件系统分为两个部分:核心关注点和横切关注点。业务处理的主要流程是核心关注点,与之关系不大的部分是横切关注点。横切关注点的一个特点是,他们经常发生在核心关注点的多处,而各处都基本相似。比如权限认证、日志、事务处理、增强处理。
AOP的使用场景:
权限认证、日志、事务处理、增强处理
@Aspect的使用以及基本概念:
1.切面类 @Aspect: 定义切面类,加上@Aspect、@Component注解
@Aspect
@Component
//设置注解执行的顺序
@Order(2)
public class AnnotationAspectTest
2.切点 @Pointcut
/**
* 定义切点,切点为对应controller
*/
@Pointcut("execution(public * com.example.zcs.Aop.controller.*.*(..))")
public void aopPointCut(){
}
注:execution表达式第一个*表示匹配任意的方法返回值,第二个*表示所有controller