博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring的Bean的生命周期
阅读量:5167 次
发布时间:2019-06-13

本文共 3018 字,大约阅读时间需要 10 分钟。

Bean的生命周期:

   定义    就是在xml文件中定义<bean>子标签,定义某个类的对象需要使用bean进行自动管理注入

   初始化   就是使用获取一个Bean容器context,然后使用context调用start方法进行初始化

   使用    就是获取对应bean中的实例

   销毁    就是bean不需要在使用的时候对bean相关的资源信息进行销毁

初始化+销毁

  方法一

  

  案例(使用了JUnit4进行测试)

 

package org.bean.example;public class BeanLifeCycle {        public void start(){        System.out.println("bean start");    }    public void stop(){        System.out.println("bean stop");    }}
package org.bean.example;import org.junit.Test;import org.junit.runner.RunWith;import org.junit.runners.BlockJUnit4ClassRunner;import org.util.test.UnitTestBase;@RunWith(BlockJUnit4ClassRunner.class)public class TestBeanLifeCycle extends UnitTestBase{        public TestBeanLifeCycle() {        super("classpath*:spring-life.xml");    }        @Test    public void test(){        super.getBean("beanLifeCycle");    }}

 

 

  方法二

  案例

 

package org.bean.example;import org.springframework.beans.factory.DisposableBean;import org.springframework.beans.factory.InitializingBean;public class BeanLifeCycle implements InitializingBean,DisposableBean{        /*public void start(){        System.out.println("bean start");    }    public void stop(){        System.out.println("bean stop");    }*/        @Override    public void afterPropertiesSet() throws Exception {        System.out.println("bean afterPropertiesSet");    }        @Override    public void destroy() throws Exception {        System.out.println("bean destroy");    }}
package org.bean.example;import org.junit.Test;import org.junit.runner.RunWith;import org.junit.runners.BlockJUnit4ClassRunner;import org.util.test.UnitTestBase;@RunWith(BlockJUnit4ClassRunner.class)public class TestBeanLifeCycle extends UnitTestBase{        public TestBeanLifeCycle() {        super("classpath*:spring-life.xml");    }        @Test    public void test(){        super.getBean("beanLifeCycle");    }}

方法三:直接在xml文件中的beans头中添加两个属性即可---default-init-method="方法名",default-destroy-method="方法名",然后再相应的bean文件中添加属性的定义的方法

package org.bean.example;import org.springframework.beans.factory.DisposableBean;import org.springframework.beans.factory.InitializingBean;public class BeanLifeCycle {        public void defaultInit(){        System.out.println("bean defaultInit");    }    public void defaultDestroy(){        System.out.println("bean defaultDestroy");    }}
package org.bean.example;import org.junit.Test;import org.junit.runner.RunWith;import org.junit.runners.BlockJUnit4ClassRunner;import org.util.test.UnitTestBase;@RunWith(BlockJUnit4ClassRunner.class)public class TestBeanLifeCycle extends UnitTestBase{        public TestBeanLifeCycle() {        super("classpath*:spring-life.xml");    }        @Test    public void test(){        super.getBean("beanLifeCycle");    }}

注意:

  三个方法的使用可以同时存在,其调用优先级从高到低:实现接口、在Bean中设置init-method、destroy-method属性、在Beans标签头部中添加默认初始化属性(如果存在前面任意一种方法,则该方法就不会执行,并且该方法是设置了所有bean的默认初始化方法)

 

 

  

 

 

  

 

转载于:https://www.cnblogs.com/myfaith-feng/p/9215142.html

你可能感兴趣的文章
python 数据类型_字典和集合
查看>>
算法笔记_170:历届试题 分糖果(Java)
查看>>
一种并行随机梯度下降法
查看>>
文件方式实现完整的英文词频统计实例
查看>>
ListControl的用法
查看>>
单个SWF文件loading加载详解(转)
查看>>
Python3 指定文件夹下所有文件(包括子目录下的文件)拷贝到目标文件夹下
查看>>
SQLServer中的CTE通用表表达式
查看>>
ural 1133. Fibonacci Sequence
查看>>
压缩图片
查看>>
SDK登录cognos
查看>>
内存知识整理。
查看>>
redis—Spring中redis缓存的简单使用
查看>>
[VC]关于ocx打包为cab的使用
查看>>
面向对象高级编程(1)-使用__slots__
查看>>
软件测试-HW03
查看>>
linux第1天 fork exec 守护进程
查看>>
Ajax原理学习
查看>>
最新最潮的24段魔尺立体几何玩法(2016版)
查看>>
C# 3.0 LINQ的准备工作
查看>>