> 文章列表 > 03 Spring生命周期

03 Spring生命周期

03 Spring生命周期

文章目录

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