1.AOP概念
面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。
面向切面编程,将通用需求功能从不相关的类中抽离出来,使很多类共享一个行为,一旦发生变化,不必修改很多类,只需修改这个行为即可。
面向对象编程(OOP)是从静态角度考虑程序结构,面向切面编程(AOP)是从动态角度考虑程序运行过程。
2.AOP术语
连接点:类里面可以被增强的方法。
切入点:类里面实际被增强的方法。
通知/增强:增强的逻辑,比如增加的日志功能。
通知的分类:前置通知,后置通知,异常通知,最终通知,环绕通知。
切面:把增强用到具体的方法上面(把增强用到具体的切入点上面)
target:代理的目标对象
3.作用:
常常通过 AOP 来处理一些具有横切性质的系统性服务,如事物管理、安全检查、缓存、对象池管理等,AOP 已经成为一种非常常用的解决方案。
利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
一是减少重复,二是专注业务
4.spring的aop操作
aspectJ:不是spring的一部分,配合spring进行aop操作
两种实现方式:
通过配置文件
通过注解