前言
为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。
(博客的参考源码以及可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出)
1. 理解bean的生命周期
2. Bean 生命周期的执行过程
3. Bean生命周期控制入门案例
1. 编写代码(IOC 和 DI入门案例的代码,模块名为respr_ioc)
- 在BookDaoImpl实现类中定义代表创建bena初始化和销毁的方法
package org.example.dao.impl;
import org.example.dao.BookDao;
public class BookDaoImpl implements BookDao {
public void save() {
System.out.println("book dao save ...");
}
//表示bean初始化对应的操作
public void init(){
System.out.println("init...");
}
//表示bean销毁前对应的操作
public void destory(){
System.out.println("destory...");
}
}
2. 在applicationContext.xml文件中配置BookDao bean 的 初始化方法 int-method 和销毁方法 destory-method
3. 将BookService的代码注释掉,运行模拟测试类,观察BookDao bean的创建和销毁过程
4. 观察运行结果
5. 简要分析
4. 关闭IOC容器的两种方式
1. 关闭ioc容器的代码及运行结果如下
2. 关闭ioc容器的第二种方式:关闭钩子(概念、代码及运行结果如下)
3. 两种关闭ioc容器的简要分析
5. 通过继承接口绑定生命周期方法
1. 绑定销毁方法和初始化方法的改进–继承接口(以BookServiceImpl为例)
public class BookServiceImpl implements BookService, InitializingBean, DisposableBean {
private BookDao bookDao;
public void setBookDao(BookDao bookDao) {
this.bookDao = bookDao;
}
public void save() {
System.out.println("book service save ...");
bookDao.save();
}
public void destroy() throws Exception {
System.out.println("service destroy");
}
public void afterPropertiesSet() throws Exception {
System.out.println("service init");
}
}
2. 模拟测试类Main2运行结果
总结
欢迎各位留言交流以及批评指正,如果文章对您有帮助或者觉得作者写的还不错可以点一下关注,点赞,收藏支持一下。
(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出)