最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Spring配置使用之Bean生命周期详解
时间:2017-11-08 编辑:猪哥 来源:一聚教程网
Spring 中的 Bean 的生命周期,指的是 Bean 从创建到销毁的过程。
下面来探究下几个有关 Bean 生命周期配置的属性。
lazy-init
lazy-init 表示延迟加载 Bean,默认在 Spring IoC 容器初始化时会实例化所有在配置文件定义的 Bean,若启用了 lazy-init 则在调用 Bean 时才会去创建 Bean。
定义 Bean:
public class Animals { public Animals(){ System.out.println("creating..."); } }
配置方式如下(以 xml 文件为例):
调用验证:
// 创建容器 String location = ... ApplicationContext factory = new FileSystemXmlApplicationContext(location); // 输出结果: // 若启用了 lazy-init 则输出 creating...,否则无打印信息。
depends-on
depends-on 是指指定 Bean 初始化及销毁时的顺序。该属性可以用于标识当前 Bean 初始化之前显式地强制一个或多个 Bean 被初始化。若指定 Bean 的作用域都是 singleton 时,表示该属性指定的 Bean 要在当前 Bean 销毁之前被销毁。
在 Bean 中定义:
public class BeanOne{ public BeanOne(){ System.out.println("BeanOne..."); } } public class BeanTwo{ public BeanTwon(){ System.out.println("BeanTwo..."); } }
在配置文件中定义:
调用验证:
String location = ... ApplicationContext factory = new FileSystemXmlApplicationContext(location); BeanOne beanOne= (BeanOne)factory.getBean("beanOne"); // 输出结果: // BeanTwo... // BeanOne...
观察输出结果,调用 BeanOne 时,Spring 会自动创建 BeanTwo 实例。
init-method & destory-method
当实例化一个 Bean 时,可能需要执行一个初始化操作来确保该 Bean 可用状态。同样地,当不需要 Bean 时,将其从容器中移除时,可能还需要按顺序执行一些清楚工作。
为 Bean 定义初始化和销毁操作,需要使用 init-method 和 destory-method 属性。
定义 Bean
// 进入房间后要开灯,离开房间后要关灯 public class Room { public Room(){ System.out.println("enter room..."); } public void turnOnLights(){ System.out.println("turn on..."); } public void turnOffLights(){ System.out.println("turn off..."); } }
在 Xml 文件中配置
在 Ioc 容器中实例化该 Bean,在销毁它
// 实例化 Bean FileSystemXmlApplicationContext context = ... // 销毁 Bean context.registerShutdownHook(); // 输出内容: // enter room... // turn on... // turn off...
-
上一个: 浅谈Vue.nextTick 的实现方法
相关文章
- SpringBoot自定义bean绑定解析 10-24
- Javaweb工程运行报错HTTP Status 404解决教程 10-20
- JAVA获取jvm和操作系统相关信息方法 10-20
- BeanFactory和FactoryBean的区别讲解 10-20
- 微信小程序的宿主环境实现教程 10-10
- dispatchEvent解决重叠元素响应事件教程 10-10