文章目录
- 1 方式1标签属性配置
 
- 1.1 在目标类中添加初始化、销毁方法[init(),destroy()]
 - 1.2 在spring配置文件中对应的bean中添加属性
 
- 2 通过spring接口方式
 
- 在目标类中实现接口,InitializingBean和DisposableBean两接口
 
- 3 关闭容器的两种操作
 
- 3.1 使用close()方法
 - 3.2 使用钩子函数:registerShutdownHook()
 
- 结尾彩蛋
 
 
1 方式1标签属性配置
1.1 在目标类中添加初始化、销毁方法[init(),destroy()]
public class BookDao implements com.zinksl.dao.BookDao {
    public void say() {
        System.out.println("BookDao say hello!");
    }
//    添加初始化方法
    public void  init(){
        System.out.println("这里是初始化方法!");
    }
    public void destroy(){
        System.out.println("这里是销毁前方法");
    }
//    添加销毁方法
}1.2 在spring配置文件中对应的bean中添加属性
在bean中添加init-method和destroy-method属性,并指定类中方法
2 通过spring接口方式
在目标类中实现接口,InitializingBean和DisposableBean两接口
public class BookService implements com.zinksl.service.BookService, InitializingBean, DisposableBean {
private BookDao bookDao ;
    public void setBookDao(BookDao bookDao) {
        this.bookDao = bookDao;
    }
    public void say() {
        bookDao.say();
        System.out.println("BookService say hello!");
    }
    public void destroy() throws Exception {
        System.out.println("这里是BookService销毁前方法");
    }
    public void afterPropertiesSet() throws Exception {
        System.out.println("这里是BookService初始化方法");
    }
}3 关闭容器的两种操作
3.1 使用close()方法
close方法比较简单粗暴,调用就直接关闭容器
3.2 使用钩子函数:registerShutdownHook()
关闭钩子:registerShutdownHook,代表如果要关虚拟机需要先关容器










