java中bean的定义有哪些_详解Java的Spring框架中bean的定义以及生命周期

bean的定义形成应用程序的骨干是由Spring IoC容器所管理的对象称为bean。bean被实例化,组装,并通过Spring IoC容器所管理的对象。这些bean由容器提供,例如,在XML的定义,已经看到了前几章的形式配置元数据创建。

bean定义包含所需要的容器要知道以下称为配置元数据的信息:

如何创建一个bean

Bean 生命周期的详细信息

Bean 依赖关系

上述所有配置元数据转换成一组的下列属性构成每个bean的定义。

2477b90cab1eaeff84e27b20be070fb9.png

Spring配置元数据

Spring IoC容器完全由在此配置元数据实际写入的格式解耦。有下列提供的配置元数据的Spring容器三个重要的方法:

基于XML的配置文件

基于注解的配置

基于Java的配置

我们已经看到了基于XML的配置元数据如何提供给容器,但让我们看到了不同的bean定义,包括延迟初始化,初始化方法和销毁方法基于XML配置文件的另一个示例:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

bean的生命周期Spring bean的生命周期是很容易理解。当一个bean实例化时,它可能需要执行一些初始化把它转换成可用状态。类似地,当bean不再需要,并且从容器中取出,一些清理的工作可能也需要做。

不过,还有把bean背后的实例化和销毁时间之间的场景发生的活动,但是本章将只讨论其中两个是需要在bean的初始化和销毁的时候,重要bean的生命周期回调方法。

要定义安装和拆卸一个bean,我们只是声明了初始化方法和/或销毁,方法的参数。在init-method属性指定一个方法,是被调用bean后立即实例化。同样,销毁方法规定了被调用当bean被从容器中取出之前的方法。

初始化回调:

org.springframework.beans.factory.InitializingBean 接口指定一个单一的方法:

void afterPropertiesSet() throws Exception;

因此,可以简单地实现上述接口和初始化工作可以在里面afterPropertiesSet() 方法,如下所示:

public class ExampleBean implements InitializingBean {

public void afterPropertiesSet() {

// do some initialization work

}

}

在基于XML的配置元数据的情况下,可以使用init-method 属性来指定具有void无参数签名的方法的名称。例如:

class="examples.ExampleBean" init-method="init"/>

下面是类的定义:

public class ExampleBean {

public void init() {

// do some initialization work

}

}

销毁回调

org.springframework.beans.factory.DisposableBean接口指定一个单一的方法:

void destroy() throws Exception;

因此,你可以简单地实现上述接口和定稿工作可以做里面的destroy() 方法,如下所示:

public class ExampleBean implements DisposableBean {

public void destroy() {

// do some destruction work

}

}

在基于XML的配置元数据的情况下,您可以使用destroy-method属性来指定具有void无参数签名的方法的名称。例如:

class="examples.ExampleBean" destroy-method="destroy"/>

下面是类的定义:

public class ExampleBean {

public void destroy() {

// do some destruction work

}

}

如果您在非web应用环境中使用Spring的IoC容器,例如在桌面富客户端环境; 注册关闭钩子在JVM中。这样做可以确保正常关机,并让所有的资源都被释放调用singleton bean上的相关destroy方法。

建议不要使用的InitializingBean或者DisposableBean的回调,因为XML配置提供极大的灵活性在命名你的方法方面。

例如:

使用Eclipse IDE,然后按照下面的步骤来创建一个Spring应用程序:

e086e610877b878d8797c3e049d7573d.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值