栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring基础第五章

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring基础第五章

第五章Spring生命周期 1.控制对象创建次数 1.1控制简单对象创建次数
 
 
prototype 每一都会创建新的
singleton 只创建一次
默认为singleton
1.2控制复杂对象创建次数
public boolean isSingleton() {
   // true 为单实例 false 每一次都会创建新的对象
   return true;
}
// 如果没有isSingleton方法还是通过 scope属性控制
1.3为什么控制对象创建次数
节省内存
	1.可以公用的创建一次就可以
		1.SqlSessionFactory
		2.DAO
		3.Service
	2.不能被公用就需要每次都创建
		1.Connection
		2.sqlSession | Session
2.对象的生命周期
1.什么是对象的生命周期
	一个对象 创建 存活 消亡 的过程
2.为什么要学习生命周期
	由spring来负责对象的创建 存活 销毁 有利于我们使用Spring为我们创建的对象
2.1生命周期的三个阶段

创建阶段

scope = "singleton"
	Spring工厂在创建的创建
	如果想获取的时候再创建 lazy-init = "true"
scope = "prototype"
	在我们获取对象的同时创建对象
	ctx.getBean()

初始化阶段

Spring在创建完对象后,调用完初始化方法,完成对应的初始化操作
1.初始化方法
	由程序员提供的,提供初始化方法,由Spring工厂调用

实现InitializingBean接口

import org.springframework.beans.factory.InitializingBean;

public class Product implements InitializingBean {
    // 1.调用构造器创建对象
    public Product() {
        System.out.println("Product的无参构造器!");
    }

    // 创建完成之后 初始化对象
    public void afterPropertiesSet() throws Exception {
        System.out.println("Product.afterPropertiesSet()");
    }
}

普通方法

1.提供普通方法
public void myInit() {
    System.out.println("Product.myInit");
}
2.在spring配置文件中注册

细节分析

1.如果上述方法都有,那么顺序是什么呢?
	1.Product.afterPropertiesSet()
	2.Product.myInit()
2.如果对象中有成员变量,那么顺序如何呢?
	注入一定发生在初始化前面
	1.Product.setPrice() set注入~
	2.Product.afterPropertiesSet()
	3.Product.myInit
3.什么叫做初始化操作
	对于资源的初始化
	数据库
	IO
	网络

销毁阶段

什么是销毁
	spring在销毁对象前,会调用销毁方法,完成销毁操作
1.什么时候会销毁创建的对象
	spring工厂在关闭的时候

实现DisposableBean接口

public void destroy() throws Exception {
	System.out.println("Product.destroy()");
}

普通方法

public void myDestroy() {
 	System.out.println("Product.myDestroy()");
}
//配置文件:destroy-method="myDestroy"

细节分析

1.销毁方法只适用于scope = "singleton"的对象 重量级对象!
2.销毁操作指的是资源的释放
	io.close()
	connection.close()
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/735880.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号