SpringBoot扩展接口- Bean实例化前后扩展点

常用的扩展接口:

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()方法调用
ApplicationContextAwareProcessor 后置处理器初始化前方法中处理下面接口调用
    EnvironmentAware、
    EmbeddedValueResolverAware、
    ResourceLoaderAware、
    ApplicationEventPublisherAware、
    MessageSourceAware、
    ApplicationContextAware接口的方法调用

ServletContextAwareProcessor 处理器处理
ServletContextAware接口调用

4.3 调用bean的初始化方法InitializingBean接口afterPropertiesSet()方法

或者注解指定的 init方法

4.4 BeanPostProcessor接口的 postProcessAfterInitialization()方法调用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值