AOP (Aspect Oriented Programming)是一种设计思想,是软件设计领域中的面向切面编程,它是面向对象编程的一种补充和完善,
它以通过预编译方式和运行期动态代理方式实现在不修改源代码的情况下给程序动态统一添加额外功能的一种技术
横切关注点:核心业务代码中的非核心业务代码
通知:横切关注点放在切面类中封装,切面类的每一个横切关注点都是一个通知方法
前置通知:在被代理的目标方法前执行
返回通知:在被代理的目标方法成功结束后执行
异常通知:在被代理的目标方法异常结束后执行
后置通知:在被代理的目标方法最终结束后执行
环绕通知:使用try ...catch.….finally结构围绕整个被代理的目标方法,包括上面四种通知对应的所有位置
切面:封装通知方法的类
目标:要抽取非核心业务代码的对象
代理:向目标对象应用通知之后创建的代理对象
连接点:抽取横切关注点的位置(纯概念)
切入点:定位连接点的方式
AOP作用:简化代码,把方法固定位置的重复的代码抽取出来,让被抽取的方法更专注于自己的核心功能,提高内聚性
代码增强:把特定的功能封装刀切面类中,看哪里需要就上套,被套用了切面逻辑的方法就被切面增强了
网友评论