使用AOP的好处,为什么使用AOP:
一、剥离与模块不相干的代码 (比如数据库的开启关闭很多地方用的到,写成一个通用块,将开闭操作与业务层代码分离开)
二、把公共逻辑分散的注入到程序中的任何位置
AOP术语:
1.切面
对象操作过程中的截面。
2.连接点
对象操作过程中某个阶段点。
3.切入点
连接点的集合
4.通知
某个切入点被横切后,所采取的处理逻辑。(通过通知执行执行切面)
5.目标对象
所有被通知的对象
6.织入
织入是将切面功能应用到目标对象的过程,它通过代理工厂创建一个代理对象,这个代理对象可以为目标对象执行切面功能。
静态切入点与动态切入点
1.静态切入点往往是不变的
2.动态切入点应用在相对变化的位置上,根据传递参数的变化,它会根据不同的参数来织入不同的切面
3.动态切入点比静态切入点性能要低,但更灵活。
AOP 5种类型通知
Before Advice,After Returning Advice,Interception Around Advice,Throws Advice,Introduction Advice
前置通知,后置通知,周围通知,异常通知,引入通知
ProxyFactoryBean类是AOP的核心类
我对AOP实现的理解:
1.需要一个目标对象,即被调用的类。
2.需要一个通知,即为节省代码使用的通用代码块。(通知方式可以有5种形式)
3.创建一个切入点,把通知配置给切入点。(你点知道程序代码从目标类哪里开始走哪里停止走,走哪些方法哪些不走)
3.需要一个AOP代理,例如:proxyFactoryBean
AOP与IOC可以结合使用,这样就不用new个对象上转型,而只需要在xml中配置即可。