舒大少博客

一个95后少年的个人博客

当前时间为:
欢迎大家来到舒大少博客http://admin.evshou.com,广告合作以及淘宝商家推广请微信联系15357240395
...
零基础学Python从入门到精通 python基础教程基础

【在售价】34.90 元
【在售价】34.90 元

立即领券
...
Python编程从入门到精通 视频教学 python语言程序设计

【在售价】29.80 元
【券后价】19.80元

立即领券
...
未来教育计算机二级ms office题库电子版c语言

【在售价】28.00 元
【在售价】28.00 元

立即领券
...
Python3视频零基础教程自学入门到精通编程语言程序设计网络爬虫

【在售价】62.00 元
【券后价】52.00元

立即领券
...
Python编程从入门到精通 零基础学python数据分析

【在售价】29.80 元
【券后价】19.80元

立即领券

2020javaweb框架教程:spring对象创建的细节

2020-12-04 14:35:11
swq1822677238

手机扫码查看

2020javaweb框架教程:spring对象创建的细节

2020javaweb框架教程:spring对象创建的细节

单例和多例

1.默认情况下bean是单例的,scope=”singleton’;
2.多例配置:scope=”prototype”;
3.scope=”request”;
4.scope=”session”;

<!-- singleton是单例 获取的对象都是同一个地址 -->
<bean name="users2" class="entity.Users" scope="singleton"></bean>
<!-- prototype 是 多例 每次构建对象都 new一个新的地址 -->
<bean name="users2" class="entity.Users" scope="prototype"></bean>

bean创建模式

singleton单例(默认);

在同一个spring工厂中,一个Bean只会创建一个对象。
多次getBean(),或多次注入使用的是同一个对象。
随工厂创建而创建,随工厂关闭而销毁。

prototype:多例(原型)

<bean class="bean.Users" id="users" scope="prototype"/>

每次getBean(),或多次注入都会重新创建对象。
不随工厂创建而创建,不随工厂关闭而销毁
被用到时才会创建对象。

生命周期

单例Bean:构造(工厂启动)–>set–>init–>User–>destory(销毁)

多例Bean:获取时才创建–>set–>init–>User–>不会随工厂关闭而销毁

延迟创建对象

lazy-init=”true” 延迟创建对象,容器启动时不创建,获取时再创建

lazy-init=”false” 默认值,不延迟创建对象,容器启动时立即创建

<bean name="users2" class="entity.Users" scope="singleton" lazy-init="true"></bean>

注:延迟创建对象只对 单例 有效

init-method="init" destroy-method="destroy

init初始化方法、destroy销毁方法,需要调用destroy()方法或close()方法,然后将ApplicationContext改成AbstractApplicationContext

发表评论

邮箱地址不会被公开。 必填项已用*标注