目录
第二种控制生命周期的方法(Spring接口控制法)(了解一下即可)
1.在dao实现类实现InitiaIizingBena,与DisposableBean接口
...生命周期:从创建到消亡的完整过程
...bean生命周期:bean从创建到销毁的整体过程
...bean生命周期的控制:在bean创建后销毁前做一些事情
第一种生命周期控制方法(xml文件配置型)
1.在dao实现类中创建提供生命周期的控制方法
package com.itheima.dao.impl;
import com.itheima.dao.BookDao;
public class BookDaoImpl implements BookDao {
public void save() {
System.out.println("book dao save ...");
}
//表示bean初始化对应的操作
public void init() {
System.out.println("dao对象的初始化...");
}
//表示bean销毁前对应的操作
public void destroy() {
System.out.println("dao对象的销毁...");
}
}
2.在Spring中配置生命周期的控制方法
<bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl" init-method="init" destroy-method="destroy"/>
第二种控制生命周期的方法(Spring接口控制法)(了解一下即可)
1.在dao实现类实现InitiaIizingBena,与DisposableBean接口
package com.itheima.service.impl;
import com.itheima.dao.BookDao;
import com.itheima.service.BookService;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
public class BookServiceImpl implements BookService,InitializingBean,DisposableBean{
private BookDao bookDao;
//这个是Di入门案例中的问题,忘记了请去看博客
public void setBookDao(BookDao bookDao) {
this.bookDao = bookDao;
}
/**
* 复写的BookService接口中的的方法
*/
@Override
public void save() {
System.out.println("service Save...");
}
@Override
public void destroy() throws Exception {
System.out.println("Service destroy...");
}
@Override
public void afterPropertiesSet() throws Exception {
System.out.println("Service init...");
}
}
bean在整个初始化的过程中都经历了那些阶段
初始化容器
1.创建对象(内存分配,可以理解为new)
2.执行构造方法(DI入门案例)
3.执行属性注入(set操作,优先于bean的初始化)
4.执行Bean的初始化方法
使用Bean
1.执行业务操作
销毁bean
1.执行Bean的销毁方法
bean的销毁时机
....IOC容器关闭前才会触发bean的销毁,ctx.close;
....关闭容器的方式
1.手工关闭容器
(ConfigurableApplicationContext接口的close()方法)
2.注册关闭钩子,在虚拟机推出之前先关闭容器,在推出虚拟机
(ConfigurableApplicationContext接口的registerShutdownHook();方法)
本文含有隐藏内容,请 开通VIP 后查看