码上敲享录 > Spring面试题 > Spring 的 Bean 生命周期是什么?它有哪些常用的回调方法?

Spring 的 Bean 生命周期是什么?它有哪些常用的回调方法?

上一章章节目录下一章 2023-07-17已有338人阅读 评论(0)

在Spring中,Bean的生命周期可以分为以下几个阶段:


1. 实例化(Instantiation):Spring容器根据配置创建Bean的实例。这可以通过构造函数实例化、工厂方法实例化、BeanPostProcessor等方式进行。


2. 属性赋值(Population):Spring容器将依赖注入或属性赋值到Bean中,包括使用`<property>`元素、注解、@Autowired注解等方式进行属性的设置。


3. 初始化前回调(Initialization Callback):在实例被完全创建后,调用Bean的初始化回调方法。可以通过`InitializingBean`接口的`afterPropertiesSet()`方法实现,或者使用`@PostConstruct`注解。


4. 初始化后回调(Initialization Callback):在初始化前回调方法执行后,调用Bean的初始化完成的回调方法。可以通过XML配置文件的`init-method`属性,或者使用`@PostConstruct`注解。


5. 销毁前回调(Destruction Callback):在Bean被销毁之前,调用Bean的销毁前回调方法。可以通过`DisposableBean`接口的`destroy()`方法实现,或者使用`@PreDestroy`注解。


6. 销毁后回调(Destruction Callback):在销毁前回调方法执行后,调用Bean的销毁完成的回调方法。可以通过XML配置文件的`destroy-method`属性,或者使用`@PreDestroy`注解。


常用的回调方法包括:


1. `afterPropertiesSet()`方法:实现InitializingBean接口,并在该方法中进行Bean的初始化操作。


2. `init-method`属性:在XML配置文件的`<bean>`元素上,通过指定`init-method`属性来指定初始化完成后调用的方法。


3. `@PostConstruct`注解:在方法上使用`@PostConstruct`注解,表示该方法在Bean的属性赋值和初始化完成后被调用,用于Bean的初始化操作。


4. `destroy()`方法:实现DisposableBean接口,并在该方法中进行Bean的销毁操作。


5. `destroy-method`属性:在XML配置文件的`<bean>`元素上,通过指定`destroy-method`属性来指定Bean销毁前调用的方法。


这些回调方法可以用于执行一些初始化操作或清理资源的工作,如数据源的初始化、缓存的清理等。


需要注意的是,对于单例作用域的Bean,Spring容器在关闭时会触发销毁回调方法,而对于原型作用域的Bean,Spring容器不会自动调用销毁回调方法,需要手动处理销毁动作。


总之,Spring的Bean生命周期包括实例化、属性赋值、初始化前后回调方法的执行,以及销毁前后回调方法的执行。开发人员可以根据需求实现相应的回调方法,来控制Bean的初始化和销毁过程。


向大家推荐《Activiti工作流实战教程》:https://xiaozhuanlan.com/activiti
0

有建议,请留言!

  • *您的姓名:

  • *所在城市:

  • *您的联系电话:

    *您的QQ:

  • 咨询问题:

  • 提 交