Spring学习笔记-03.Bean的生命周期

付威     2019-11-22   1367   3min  

Bean的生命周期

在Spring容器中,实例对象都会有三个过程,创建,初始化和消亡。

实现Bean生命周期的方式


@Bean注解指定方法

@Bean(initMethod = "init",destroyMethod = "destroy")
public  Dog getDog(){
     return new Dog();
}

InitializingBean和DisposableBean

public class Cat implements InitializingBean, DisposableBean {
	public Cat(){
		RzLogger.info("cat create");
	}
	@Override
	public void destroy() throws Exception {
		RzLogger.info("cat destroy");
	}
	
	/**
	 * 在容器创建的时候调用
	 * @throws Exception
	 */
	@Override
	public void afterPropertiesSet() throws Exception {
		RzLogger.info("cat afterPropertiesSet");
	}
}

@PostConstruct和 @PreDestroy

@PostConstruct:在bean创建完成并且属性赋值完成;来执行初始化方法

@PreDestroy:在容器销毁bean之前通知我们进行清理工作

public class Dog {
	public Dog() {
		RzLogger.info("创建Dog");
	}
	@PostConstruct
	public void init() {
		RzLogger.info("Dog init PostConstruct");
	}

	@PreDestroy
	public void destroy() {
		RzLogger.info("Dog destory PreDestroy");
	}
}

BeanPostProcessor


public class RzBeanPostProcessor implements BeanPostProcessor {
	/**
	 * 前置处理器 和后置处理器
	 * @param bean
	 * @param beanName
	 * @return
	 * @throws BeansException
	 */
	@Override
	public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
		RzLogger.info("Before init "+beanName);
		return bean;
	}
	
	@Override
	public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
		RzLogger.info("After init "+beanName);
		return bean;
	}
}

(本文完)

作者:付威

博客地址:http://blog.laofu.online

如果觉得对您有帮助,可以下方的RSS订阅,谢谢合作

如有任何知识产权、版权问题或理论错误,还请指正。

本文是付威的网络博客原创,自由转载-非商用-非衍生-保持署名,请遵循:创意共享3.0许可证

交流请加群113249828: 点击加群   或发我邮件 laofu_online@163.com

付威

获得最新的博主文章,请关注上方公众号