Spring-AOP简介
spring面向切面编程
1、切面
事务、日志、安全性框架、权限等都是切面
2、通知
通知就是切面中的方法1
2
3
4
5
6
7
8
9
10
11// Transaction类为一个切面
public class Transaction {
// beginTransaction()方法为一个通知
public void beginTransaction(){
System.out.println("begin transaction");
}
// commit()方法为另一个通知
public void commit(){
System.out.println("commit");
}
}
3、切入点
1 | if(method.getName().contains("save") |
在上面的代码中if语句块的内容就是切入点,只有满足了切入点以后,才能让通知和目标方法结合在一起
4、连接点
代理对象调用哪个方法,该方法就称为连接点(在程序执行过程中某一个特定的点)
5、织入:
形成代理对象方法体的过程,一个动作
6、说明:
- 1、代理对象的方法=通知+目标方法
- 2、除了目标方法以外的内容都可以看做切面中的通知(比如目标方法有CRUD,除了CRUD之外的都是通知,如开启事务、事务提交及事务回滚等)
- 3、连接点代表了一个方法,在客户端被调用的一个方法(这个方法目标方法和代理对象中都存在)
- 4、通知就是切面中的一个方法
- 5、在开发的过程中,通知和目标方法完全是松耦合的