spring 容器通过生命周期回调机制管理 bean 的创建与销毁流程,涵盖实例化、初始化及销毁等关键阶段。当 bean 初始化完成或即将被移除时,容器会自动触发预设的方法。开发者可通过实现特定接口(如 initializingbean、disposablebean)或使用注解(如 @postconstruct、@predestroy),亦或在 xml 配置中声明 init-method 与 destroy-method 属性,实现在对应生命周期节点执行自定义逻辑。
1、 创建一个名为 BeanControl 的类,提供无参构造方法以标识对象是否成功创建。在该类中定义 init() 和 destroy() 方法,分别模拟 Bean 初始化完成和销毁前的处理行为。init() 方法执行时输出“初始化 javaBean”,destroy() 方法执行时输出“销毁 javaBean”。借助构造函数的调用日志,可直观判断 Bean 是否已完成实例化,从而清晰追踪整个生命周期过程,便于分析 Bean 的生成与释放行为。

2、 在 applicationContext.xml 文件中注册一个 bean,其 id 设置为 beanControl,class 属性指向 BeanControl 类的全限定名。为便于观察输出效果,将 scope 属性设为 prototype,并通过 init-method 属性指定 init 方法,在 Bean 实例化后立即调用该方法完成初始化操作。

3、 编写单元测试方法,从 Spring 应用上下文中获取 BeanControl 实例并进行验证操作。
4、 使用 JUnit 执行测试,控制台按顺序打印出构造函数日志与 init() 方法输出内容,表明对象实例化完成后,初始化方法被自动且及时调用,验证了二者执行时序的准确性与可靠性。

5、 当 Spring 容器关闭时,其所管理的 Bean 将进入销毁阶段。因此,可通过显式关闭容器来模拟 Bean 的销毁场景。在 applicationContext.xml 中,为该 bean 添加 destroy-method 属性,并设置其值为 destroy;由于该属性仅对 singleton 类型的 Bean 生效,需将 scope 明确设为 singleton,以确保容器关闭时能正确触发 destroy() 方法,完成资源回收等收尾工作。
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。

6、 在测试方法中加入关闭 ApplicationContext 的代码,如下所示:

7、 运行测试后可见,容器关闭过程中输出了“销毁 javaBean”字样,证实 destroy 方法已被成功执行。

8、 若在











