iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Spring配置使用之Bean生命周期的示例分析
  • 334
分享到

Spring配置使用之Bean生命周期的示例分析

springbean 2023-05-31 00:05:11 334人浏览 独家记忆
摘要

这篇文章主要介绍了spring配置使用之Bean生命周期的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。基本概念Spring 中的 Bean 的生命周期,指的是 Be

这篇文章主要介绍了spring配置使用之Bean生命周期的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

基本概念

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 文件为例):

<!-- 表示启用了延迟加载 --><bean id="animals" class="com.demo.Animals" lazy-init="true"/><!-- 不启用延迟加载 --><bean id="animals" class="com.demo.Animals" lazy-init="default"/><bean id="animals" class="com.demo.Animals" />

调用验证:

// 创建容器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...");   }}

在配置文件中定义:

<bean id="beanOne" class="com.demo.BeanOne" lazy-init="true" depends-on="beanTwo" /> <bean id="beanTwo" class="com.demo.BeanTwo" lazy-init="true" />

调用验证:

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 文件中配置

<bean class="com.demo.Room" init-method="turnOnLights" destroy-method="turnOffLights"/>

在 Ioc 容器中实例化该 Bean,在销毁它

// 实例化 BeanFileSystemXmlApplicationContext context = ...// 销毁 Beancontext.reGISterShutdownHook(); // 输出内容:// enter room...// turn on...// turn off...

感谢你能够认真阅读完这篇文章,希望小编分享的“Spring配置使用之Bean生命周期的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: Spring配置使用之Bean生命周期的示例分析

本文链接: https://www.lsjlt.com/news/222145.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作