1.概述
Spring AOP可以采用注解或者xml配置的方式实现,那么在spring的生命周期当中,是在什么时候生成的代理对象呢?本文就AOP代理对象生成的时机进行介绍。不清楚spring生命周期的读者可以先阅读另一篇博客《Spring IOC—Bean的生命周期》。
2.前置知识
- BeanPostProcessor接口的作用
简单的讲就是在一个对象初始化的前后做一些事情,里面有两个方法,一个是postProcessBeforeInitialization,实例化、依赖注入完毕,在调用显示的初始化之前完成一些定制的初始化任务。另一个是postProcessAfterInitialization,实例化、依赖注入、初始化完毕时执行
3.Spring AOP代理对象生成的时机
可以分成两类,提前和非提前生成代理对象。
下面分别介绍这两类代理对象生成的时机,以及说明为什么会有这两种情况。
3.1非提前生成代理对象
下面给个例子,通过调试代码来说明代理的时机,读者可以跟着一边调试一边阅读。<