Spring AOP 知识相关总结
一、AOP是什么?
AOP ——是Aspect Oriented Programming的缩写,面向切面编程,不修改源代码的情况下给程序动态统一添加功能的一种技术。
二、AOP要解决什么问题?
AOP就是要在基于OCP【开闭原则:一个软件实体(类、模块、函数)应该通过扩展来实现变化{扩展开放,修改关闭},而不是通过修改代码来实现变化】在不改变原有系统核心业务代码的基础上动态添加一些扩展功能并可以控制对象的执行。
三、AOP实际项目应用场景?
AOP 通常应用于日志的处理,事务处理,权限处理,缓存处理等等。
四、AOP 相关术语
切面(aspect): 横切面对象,一般为一个具体类对象(可以借助@Aspect声明)
连接点(joinpoint):程序执行过程中某个特定的点,一般指被拦截到的的方法
切入点(pointcut):对连接点拦截内容的一种定义,一般可以理解为多个连接点的结合.
通知(Advice):在切面的某个特定连接点上执行的动作(扩展功能),例如around,before,after等
五、AOP 编写项目基本步骤
step1:创建maven java 项目
step2:添加aop依赖
step3:配置aop 核心(基于xml,基于注解)
step4:定义核心业务(核心关注点):推荐先写接口再写实现类
step5:定义扩展业务(非核心关注点)
step6:基于配置实现非核心业务的切入
step7:编写测试类进行单元测试
六、常见FAQ
1.什么是OCP原则(开闭原则):允许扩展,不允许修改
2.什么是单一职责原则(一个类或接口的职责不要太多)
3.spring中AOP的有哪些配置方式(xml和注解)