Spring -10 -<bean>的 scope 属性 -singleton 默认值/prototype 多例 /request /session /application /global sess...

本文详细解析了Spring框架中&lt;bean&gt;标签的作用域属性,包括singleton(单例)、prototype(多例)、request、session及application等不同作用域的特点与应用场景。通过代码示例,清晰展示了不同作用域下Bean的实例化行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.<bean>的属性;

2.作用:控制对象有效范围(单例,多例等)
3.<bean/>标签对应的对象默认是单例的.
  3.1无论获取多少次,都是同一个对象
 

Teacher t1 = ac.getBean("teacher1",Teacher.class);
System.out.println(t1);

Teacher t2 = ac.getBean("teacher1",Teacher.class);
System.out.println(t2);

System.out.println(t1==t2);
3.3输出结果如下: 3.4com.test.Teacher@5b275dab 3.5com.test.Teacher@5b275dab 3.6true

 

3.7
4.scope 可取值
4.1singleton 默认值,单例--所有同一对象使用同一地址!

<bean id="teacher1" class="com.test.Teacher" scope="singleton"></bean> 
等价于下面的:
<bean id="teacher1" class="com.test.Teacher" ></bean>

 

4.4prototype 多例,每次获取重新实例化该Class !

<bean id="teacher1" class="com.test.Teacher" scope="prototype"></bean>

Teacher t1 = ac.getBean("teacher1",Teacher.class);
t1.setCnt(2);
System.out.println(t1); //Teacher{cnt=2}

Teacher t2 = ac.getBean("teacher1",Teacher.class);
System.out.println(t2); //Teacher{cnt=2}

System.out.println(t1==t2);

输出结果: Teacher{cnt=2} ,Teacher{cnt=0} , false

 

4.8  request 在每次请求时,重新new() / 实例化;
4.9  session 每个会话对象内,对象是单例的. (依赖于Spring0MVC架构)
4.10  application 在application 对象内是单例;
4.11   global session, spring 推 出 的 一 个 对 象 , 依 赖 于 spring-webmvc-portlet ,类似于session

 

转载于:https://www.cnblogs.com/zhazhaacmer/p/10113353.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值