首页 > 编程知识 正文

spring ioc原理(bean对象生命周期)

时间:2023-05-04 11:21:51 阅读:95170 作者:1403

Spring Bean的生命周期

实例化

1 .实例化一个Bean,也就是我们常说的new。

依赖于IOC的注入

2 .根据Spring上下文配置实例化Bean,也就是IOC注入。

实施setBeanName

3 .如果此Bean已经实现了BeanNameAware接口,则调用所实现的set beanname (字符串)

方法。 此处传递的是Spring配置文件中Bean的id值

beanfactory警报的实现

4 .如果此Bean已经实现了BeanFactoryAware接口,则调用所实现的setBeanFactory。

setBeanfactory(beanfactory )正在传递Spring工厂本身) )可以通过此方法获取其他bean。

只需在Spring配置文件中设置常规Bean )。

应用程序连接插件的实现

5 .如果此Bean已经实现了应用程序连接接口,将调用

将setapplicationcontext (application context )方法传递给Spring上下文(同样地

可以实现步骤4的内容,但由于应用上下文是BeanFactory的子代,因此比4更好

口,有更多的实现方法)

实现postprocessbeforeinitialization接口-初始化预处理

6 .如果此Bean具有关联的bean post处理器接口,将调用

beanpostprocessbeforeinitialization (对象字符串)方法在BeanPostProcessor中很常用

这是对Bean内容的更改,它是在Bean初始化结束时调用它的方法,因此也可以进行应对

用于内存或缓存技术。

初始化方法

如果Bean在Spring配置文件中设置了init-method属性,则会自动调用该设置的初始化方法。

postProcessAfterInitialization

8 .如果此Bean具有关联的bean post处理器接口,将调用

postprocessafterinitialization (对象字符串)方法。

注意:完成以上操作后,可以应用此Bean。 那么,由于这个Bean是单个,所以1

通常,调用具有相同id的Bean是内容地址相同的实例。 当然,在Spring配置文件中

也可以配置非Singleton。

Destroy过期自动清理阶段

9 .不再需要bean时,如果经过清理阶段,bean实现了名为DisposableBean的接口,则会进行调整

使用它实现的destroy ()方法;

删除方法自配置清理

10 .最后,如果为此Bean的Spring配置了destroy-method属性,则会自动调用该配置

销毁方法。

11. bean标签有两个重要的属性:初始化方法和删除方法。 可以自己定制

初始化和注销方法。 这些也有适当的评论@PostConstruct和@PreDestroy )。

bean id=' '类=' ' init-method='初始化方法' destroy-method='销毁方法'

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。