实现org.springframework.beans.factory.InitializingBean 接口--初始化bean

1、案例

import com.dzwl.easy.report.core.service.IUserDescService;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class InitializingBeanTest implements InitializingBean {

    @Autowired
    private IUserDescService iUserDescService;

    private String testValue;

    @Override
    public void afterPropertiesSet() throws Exception {
        this.testValue = "test";
    }
}

初始化完成后,从容器中获取对应的Bean进行验证
InitializingBeanTest bean = SpringContextHolder.getBean(InitializingBeanTest.class);

2、InitializingBean 接口的执行时机
InitializingBean 的 afterPropertiesSet() 方法的执行时机是在spring完成依赖注入后,且在 Bean 正式投入使用之前
,具体执行顺序如下:
1)Bean 实例化:Spring创建bean的实例
2)依赖注入:Spring注入所有必要的依赖(通过构造器、Setter方法等)
3)调用 afterPropertiesSet() :如果Bean 实现了 InitializingBean 接口,Spring会调用 afterPropertiesSet() 方法,允许你在依赖注入完成后执行一些自定义的初始化调用。

3、调用 afterPropertiesSet() 的源码
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#invokeInitMethods
在这里插入图片描述
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#initializeBean(java.lang.String, java.lang.Object, org.springframework.beans.factory.support.RootBeanDefinition)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小达人Fighting

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值