Spring实战ch4 aop总结
4.1
advice - 切面是什么以及何时使用
join point - 能够插入切面的一个点
poincut - 定义何处,匹配通知所要织入的连接点
aspect - 通知和切点的结合,定义切面全部内容
introduction - 引入。支持向现有的类添加新方法或属性
weaving - 织入。切面应用到目标对象并创建新代理对象的过程。
多个点可以织入:
- 编译期:切面在目标类编译时被织入,需要特殊编译器。aspectJ织入
- 类加载器:切面在目标类加载到JVM时被织入,需要特殊classLoader
- 运行期:应用运行的某时刻被织入。AOP容器为目标对象动态创建代理对象。SpringAOP实现
如果需求超过了方法调用(构造器/属性拦截),考虑使用aspectJ实现切面。
直到应用需要被代理bean时,spring才创建代理对象。
因为spring基于动态代理,所以spring只支持方法连接点。缺少对字段连接点支持,不支持构造器连接点,无法在bean创建时应用advice。
方法拦截可以满足大部分需求,其余的用aspect补充
4.2
编写切点
4.3
配置类
XML装配
通过注解引入新功能