目录
一、bean的生命周期
- 首先理解下什么是生命周期?
从创建到消亡的完整过程,例如人从出生到死亡的整个过程就是一个生命周期。
- bean生命周期是什么?
bean对象从创建到销毁的整体过程。
- bean生命周期控制是什么?
在bean创建后到销毁前做一些事情。
1、环境准备
(1)创建一个Maven项目;在pom.xml添加依赖;在resources下添加spring的配置文件applicationContext.xml
(2)添加BookDao、BookDaoImpl、BookService和BookServiceImpl类
public interface BookDao {
public void save();
}
public class BookDaoImpl implements BookDao {
public void save() {
System.out.println("book dao save ...");
}
}
public interface BookService {
public void save();
}
public class BookServiceImpl implements BookService{
private BookDao bookDao;
public void setBookDao(BookDao bookDao) {
this.bookDao = bookDao;
}
public void save() {
System.out.println("book service save ...");
bookDao.save();
}
}
(3)配置文件中添加bookDao的bean
(4)编写Appe运行类,加载Spring的IoC容器,并从中获取对应的bean对象
2、生命周期设置
(1)添加初始化和销毁方法
(2)在配置文件中配置初始化和销毁方法
(3) 用close关闭容器,将ApplicationContext更换成ClassPathXmlApplicationContext,运行后初始化和销毁方法正常执行
(4)或者使用注册钩子关闭容器,调用ctx的registerShutdownHook()方法,运行后结果正确
3、用Spring提供的接口来完成生命周期的控制
(1)修改BookServiceImpl类,添加两个接口InitializingBean, DisposableBean并实现接口中的两个方法afterPropertiesSet和destroy
(2) 在配置文件中配置bookService的bean
(3) 在App运行bookService的save方法,afterPropertiesSet和destroy方法被调用