Spring如何指定@Bean初始化和销毁方法
1、 bean的生命周期包括:bean的创建到初始化到销毁的过程。我们可以自定义初始化和销毁方法:容器在bean进行到当前生命周期的时候来调用自定的初始化和销毁方法。package com.gwolf.vo;public class Car { public Car() { System.out.println("car constructor..."); } public void init() { System.out.println("car init()"); } public void destroy() { System.out.println("car destory()"); }}
2、在组件配置类中初始化Car类注入到Spring容器中。package com.gwolf.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import com.gwolf.vo.Car;@Configurationpublic class MainConfigOfLifeCycle { @Bean public Car car() { return new Car(); }}
3、单实例的对象是在容器启动的时候创建。使用@Bean注解中指定初始化和销毁的方法。package com.gwolf.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import com.gwolf.vo.Car;@Configurationpublic class MainConfigOfLifeCycle { @Bean(initMethod="init",destroyMethod="destroy") public Car car() { return new Car(); }}
4、这样当spring容器创建的时候将调用对象的初始化方法。
5、当关闭容器的时候将调用对象的销毁方法。
6、初始化的在对象创建完成并赋值后调用初始化方法。如果对象是多实例的,容器不会管理这个bean,容器不会调用销毁方法。