- AOP
一、简介
1.1概念
AOP:将程序中交叉业务逻辑(一条插入语句还要有)(事务、日志)代码提取出来,封装成切面,由AOP容器在适当时机(位置)将封装的切面动态的植入到具体业务逻辑中
1.2应用场合
适用于具有横切逻辑的场合,如事务管理、日志记录、性能检测、异常通知、访问控制
1.3作用
不改变原来代码的基础上动态添加新的功能
模块化(每一层都要做相同的事务,封装在一起形成一个模块)
1.4术语
连接点:程序执行的某个特定位置,如方法调用前,方法调用后,方法抛出异常时
切入点:定位查找到需要的连接点,即切点
增强Advice:通知 在切入点执行的一段程序代码,用来实现某些功能
目标对象:将执行增强处理的目标类
织入:将增强添加到目标类具体切入点上的过程
代理: 一个类被织入增强后,会产生一个代理类
切面:切点和增强的组合
引介:引入
二、实现原理
2.1代理模式
概念:为其他对象提供一种代理,以控制对这个对象的访问,起到中介的作用,通过代理对象访问目标对象,可以增强额外的操作,扩展目标对象功能。
分类:
1、静态代理:
代理类是程序员创建或工具生成。
所谓静态代理就是在程序运行之前就已经存在代理类的字节码文件
代理的三要素:
1、目标类的接口
Public class UserServiceProxy implements UserService
UserServiceImpl里实现的方法,UserServiceProxy里都有这些方法并且进行了增强
2、目标类的实例
Private UserService userService=new UserServiceImpl();