springBean生命周期

SpringBean是被Ioc容器管理的对象,通过配置或注解指定。Bean的生命周期包括实例化、属性注入、初始化和销毁。初始化过程涉及各种Aware接口、InitializingBean和自定义初始化方法。销毁时,可执行DisposableBean的destroy方法或自定义销毁方法。
摘要由CSDN通过智能技术生成

什么是SpringBean:

Bean代表被Ioc容器管理的对象,通过配置文件或者注解,告诉Ioc容器帮助我们管理哪些对象。

配置文件形式:

<bean id="id名称" class="路径">
    <constructor-arg value="..."/> <!--通过构造函数注入-->
</bean>

Bean 的注解:@Autowired、@Resource 注解等;

注册Bean时,@Component , @Repository , @ Controller , @Service , @Configration这些注解都是要把需要实例化的对象转化成一个Bean,放在Ioc容器中,等需要用的时候,它会和上面的@Autowired , @Resource配合到一起,把对象、属性、方法组装。

springBean生命周期:

SPringle的生命周期分为四个阶段:1️⃣实例化 2️⃣属性注入 3️⃣初始化 4️⃣销毁

  1. 实例化:根据配置文件中Bean的定义,利用Java Reflection反射技术创建Bean的实例;

  1. 注入对象依赖的属性值或对象;

  1. 处理各种Aware接口:Spring会检测Bean是否实现了xxxAware接口,通过Aware类型接口

,可以让SPringle框架为当前的Bean注入想相应的内容;

3.1 如果Bean实现BeanNameAware接口,会掉用它实现setBeanName方法,注入Bean的名字;

3.2 如果Bean实现BeanClassLoaderAware 接口,调用setBeanClassLoader() 方法,注入ClassLoader对象的实例;

3.3 如果Bean实现BeanFactoryAware接口,会调用它实现的setBeanFactory() 方法,注入的是S

pring厂;

3.4 如果Bean 实现Applicat ionContextAware接口,会调用setApplicat ionContext()方法,注

入Spring上下文;

  1. 执行BeanPostProcessor前置处理: 如果想对Bean进行一些自定义的前置处理,那么可以让Bean实现了BeanPostProcessor 接口,将会在该阶段调用postProcessBeforeInitialization方法;

  1. 执行InitializingBean初始化方法:如果Bean实现了InitializingBean 接口,执行afeterPropertiesSet()方法。

  1. 执行init-method自定义初始化方法: 如果Bean在Spring配置文件中配置了init- method属性,则会自动调用其配置的初始化方法。

  1. 执行BeanPostProcessor后置处理:如果这个 Bean实现了BeanPostProcessor接口,将会调用postProcessAfterInitialization(Object obj, String s)方法,由于这个方法是在Bean 初始化结束后调用;

⭐如完成以上步骤,则证明已正确创建Bean,已经可以正常使用Bean。

Bean的销毁方式:

  1. 执行DisposableBean销毁Bean:当Bean不再需要时,会经过清理阶段,如果Bean 实现了DisposableBean这个接口,会调用其实现的destroy()方法执行销毁;

  1. 执行destroy-method自定义销毁方法:如果这个Bean 的Spring配置中配置了destroy - method属性,会自动调用其配置的自定义销毁方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值