Spring容器控制bean实例化的方式:生命周期回调

2025-05-16 18:15:40

1、首先创建一个名为BeanControl的类,在其中加入init和destroy方法,模拟bean实例化时调用init,根蹯厝求销毁时调用destory。在方法中只需要简单的输出初始化javaBean以及销毁javaBean。再加入无参构造器,以判断bean实例化。

Spring容器控制bean实例化的方式:生命周期回调

2、在applicationContext.xml中声明bean,id为beanControl,class为其访问路径,为方便输出比对,作用域设置为prototype,添加属性init-method为init,初始化方法为init()方法。

Spring容器控制bean实例化的方式:生命周期回调

3、创建测试方法,获取spring容器后,直接通过容器获取BeanControl的实例。

Spring容器控制bean实例化的方式:生命周期回调

4、利用junit进行测试,测试结果控制台输出如下,输出内容依次是构造器的输出,然后是init()方法的输出,证明是实例化的同时调用初始化方法。

Spring容器控制bean实例化的方式:生命周期回调

5、由于水瑞侮瑜bean对象会随着spring容器关闭而自动销毁,因此可以直接关闭Spring容器来模拟bean销赦觇殒阻毁。首先在applicationContext中bean声明中加入属性destroy-method属性,声明销毁调用方法destroy,由于此属性只对单例生效,因此将作用域scope换成singleton。

Spring容器控制bean实例化的方式:生命周期回调

6、然后在测试方法中添加关闭Spring容器的代码,如下

Spring容器控制bean实例化的方式:生命周期回调

7、运行结果如下,在关闭容器时,输出了销毁javaBean的内容,证明此时回调了destroy方法。

Spring容器控制bean实例化的方式:生命周期回调

8、生命周期的初始化及销毁也可以对所有的bean进行配置,只需要在Beans标签下配置default-init-罪焐芡拂method和default-destroy-method,按照配置bean的顺序,spring容器会搜素bean中的init方法和destroy方法作为全局的方法使用。

Spring容器控制bean实例化的方式:生命周期回调
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢