================== Spring AOP基本概念 ================== AOP = Aspect Oriented Programming = 面向切面编程 通过一种基于动态代理的横切技术,拦截原有业务逻辑,并在所形成的横截面上添加特定的处理,以增强原有功能。 - 前提:不改业务逻辑 - 目标:增强原有功能 - 方法:基于动态代理 业务处理方法(Dao dao) { ... 连接点 <-------- \ __________ | | |dao.insert| | 切入点 | |__________| | | 增强 | | <--------|-- | | | | <-------------- / ... | | | 连接点 } | | | | | | ____________ | | | |类 | | | | \ | ________ | | | | | | |开启事务|_|__| | | 切点 before | | |________| | | | | | ________ | | | | | |提交事务|_|_____| | 切点 after | 切面 | |________| | | | | ________ | | | | |回滚事务|_|________| 切点 after-throwing | | |________| | | |____________| / 连接点:程序中的方法。 切入点:被Spring横切的方法。 切点:添加到切入点的新增处理。 增强:将切点插入到切入点的前面、后面或者环绕。 切面:定义切点方法的类。 定义一个类(切面),包含一堆方法(切点) \ 面向切面 写配置文件,声明哪个方法插到哪个位置 / 编程(AOP) Spring AOP读取配置文件,利用动态代理拦截切入点,根据配置执行切点。