Bean的初始化和销毁

spring注解-Bean的初始化和销毁和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 {
}