Spring学习之bean的实例化,销毁

1.Bean的实例化

1) 指定初始化方法 使用init-method属性

在类中定义初始化的方法(名字任意)例如:init() ,在spring 配置文件中定义bean 的时候注册

<bean id ="" class ="" init-method="init">

使用init-method属性指定方法在Bean的全部依赖关系结束之后自动执行

2)实现initlializingBean 接口

存在org.springframework.beans.factory.InitializingBean中,原理:容器设置好Bean的所有必要属性后给Bean发通知,以执行初始化工作,某个Bean实例实现了InitializingBean接口,该Bean的代码就与Spring耦合到一起(不推荐使用)

例如:

public class simpleBean implements InitializingBean{ }

实现接口之后,就不需要init()方法,改为实现InitializingBean接口的afterPropertiesSet()方法 。配置文件中也不需要init-method属性,当Bean中的所有依赖关系被设置完成后Spring容器会自动调用该Bean的afterPropertiesSet()方法

2.Bean的销毁

1)使用destroy-method属性

   对于基于Web的ApplicationContext实现,已有相应的代码来保证关闭应用程序时,恰当的关闭Spring容器

   不是Web的应用环境下,希望容器关闭,并在关闭前用singleton的单例配置销毁回调方法,需要在JVM中注册一个关闭钩子(shutdown hook)

为注册shutdown hook 需调用AbstractApplicationContext中的registerShutdownHook()方法 ,则程序会退出springApplicationContext容器,并关闭前,调用bean的析构回调方法

在类中定义方法,方法名任意,在配置文件中添加destory-method 属性指向方法名即可,

2) 实现DisposableBean接口 ,org.springframework,beans.factory.DisposableBean接口

定义类继承DisposableBean接口,然后继承接口的void destory()方法 ,编写方法体, spring的配置文件中也不用加destory-method属性(建议使用)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值