创建Bean的时候我们还可以
通过让Bean实现InitializingBean(定义初始化逻辑), DisposableBean(定义销毁逻辑)
自定义方法做初始化销毁
eclipse中快捷键Ctrl+Shift+T,我们查看InitializingBean及DisposableBean
InitializingBean接口中包含一个afterPropertiesSet的方法
DisposableBean中有一个destroy的方法
我们通过实现这两个类中的方法进行bean的初始化销毁
创建一个Cat.java,用@Component方式注册组件
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Component;
@Component
public class Cat implements InitializingBean,DisposableBean{
public Cat() {
System.out.println("cat constructor...");
}
public void destroy() throws Exception {
// TODO Auto-generated method stub
System.out.println("cat ... destory...");
}
public void afterPropertiesSet() throws Exception {
// TODO Auto-generated method stub
System.out.println("cat ... afterPropertiesSet...");
}
}
配置类MainConfigOfLifeCycle.java中,我们用扫描包的方式将组件加入到容器中,我的Cat类路径为com.atguigu.bean
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@ComponentScan("com.atguigu.bean")
@Configuration
public class MainConfigOfLifeCycle {
@Bean(initMethod="init",destroyMethod="detory")
public Car car(){
return new Car();
}
}
测试类IOCTest_LifeCycle.java
import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import com.atguigu.config.MainConfigOfLifeCycle;
public class IOCTest_LifeCycle {
@Test
public void test01(){
//1、创建ioc容器
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfigOfLifeCycle.class);
System.out.println("容器创建完成...");
//关闭容器
System.out.println("容器进行关闭...");
applicationContext.close();
}
}
运行结果如下图: