常用的扩展接口:
1、ApplicationContextAware:获取应用上下文
2、BeanPostProcessor 接口在对象实例化后, 初始化方法调用前后做前置处理和后置处理操作。
触发时间:
刷新上下文refreshContext()方法中,调用 finishBeanFactoryInitialization(beanFactory) 方法,进行bean的实例化
上下文applicationContext的事件监听器和时间广播器已经初始化完成
内置tomcat已经启动
工厂FactoryBean一般不需要扩展接口
普通bean才需要扩展接口
初始化bean的入口 beanFactory.getBean()方法
1、创建bean实例
2、bena实例缓存起来
3、调用populateBean()会在这里进行@Autowire注解的依赖注入
_4、_initializeBean()进行bean的初始化
4.1 BeanNameAware、BeanClassLoaderAware、BeanFactoryAware接口方法调用 (实现了这些接口的bean)
4.2 BeanPostProcessor接口的postProcessBeforeInitialization()方法调用
4.3 调用bean的初始化方法InitializingBean接口afterPropertiesSet()方法
或者注解指定的 init方法
4.4 BeanPostProcessor接口的 postProcessAfterInitialization()方法调用
Original: https://www.cnblogs.com/gne-hwz/p/15305801.html
Author: 海绵般汲取
Title: SpringBoot扩展接口- Bean实例化前后扩展点
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/541140/
转载文章受原作者版权保护。转载请注明原作者出处!