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,代表如果要关虚拟机需要先关容器