spring注解-Bean的初始化和销毁和bean作用域

本文详细介绍了如何使用Spring框架管理Bean的生命周期,包括初始化和销毁方法的定义与调用。通过@PostConstruct和@PreDestroy注解,实现了Bean的自定义初始化和销毁逻辑,确保了单例Bean在容器关闭时正确执行销毁方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Bean的初始化和销毁

在这里插入图片描述
使用 @PostConstruct 注解, 标明初始化方法 —相当于 init-method 指定初始化方法
使用 @PreDestroy 注解, 标明销毁方法 ----相当于 destroy-method 指定对象销毁方法

示例:

@Component("IifeCycleBean" )
public class LifeCycleBean {
	public LifeCycleBean(){
		System. out . println("LifeCycleBean构造方法");
	}
	@PostConstruct
	public void init(){
		System. out . println("LifeCycleBean初始化");
	}
	@PreDestroy
	public void teardown(){
		System. out . print1n("LifeCycleBean销毁");
	}
}

测试:

@Test
public vold test(){
	ApplicationContext applicat ionContext = new ClassPathXmlAppl ication ontext(" applicat ionContext .xml");
	LifecyleBean lifecyleBean = (LifecyleBean) applicat ionContext . getBean("lifecyleBean");
	System.out. printin(lifecyleBean);
	//没有销方法,也是由spring来管理的,
	( (ClassPathXmlApplicationContext )applicat ionContext).close();
}

如果要执行对象的销毁方法
条件一: 单例Bean (在容器close时,单例Bean才会执行销毁方法 )
条件二: 必须调用容器 close 方法

Bean的作用域

通过@Scope注解指定Bean的作用域(默认是 singleton 单例)
示例:

@Component("lifecyleBean")
//默认情况下bean都是单例
@Scope(" prototype")//可以变成多例,但是不用调用销毁方法(没有销毁方法)
public class LifecyleBean {
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值