Spring——Bean的作用域
Spring中Bean的作用域有五种,分别是singleton、prototype、request、session、globalSession。其中request、session、globalSession这三个作用域只有在web开发中才会使用到。
当在 Spring 中定义一个bean时,你必须声明该 bean 的作用域的选项,若没有声明则默认作用域是singleton。
1 singleton 该作用域将 bean 的定义的限制在每一个 Spring IoC 容器中的一个单一实例。
*使用:什么都不做,默认就是单例模式,但是你也可以显示的加一个scope,例如:
<bean id="user" class="com.zhbit.pojo.User" scope="singleton"/>
如果你还是不明白什么是单例模式,那就举个例子来说明:
@Test
public void test(){
ApplicationContext context = new ClassPathXmlApplicationContext("beans2.xml");
User user = context.getBean("user", User.class);
User user2 = context.getBean("user", User.class);
System.out.println(user==user2);
}
运行结果:
输出结果为true。证明了user和user2是同一个对象!
结论:只要bean的作用域是singleton ,getBean()方法中参数用的是同一个bean的id,则实例化的就是对象就是同一个。
<bean id="user" class="com.kuang.pojo.User" scope="prototype"/>
举例证明:
@Test
public void test(){
ApplicationContext context = new ClassPathXmlApplicationContext("beans2.xml");
User user = context.getBean("user", User.class);
User user2 = context.getBean("user", User.class);
System.out.println(user==user2);
}
}

输出结果为false,证明 user和user2不是同一个对象。
Spring——Bean的作用域的更多相关文章
- Spring Bean的作用域(转)
Spring Bean的作用域 .singleton [单例] eg:<bean id="personService" class="com.yinger.ser ...
- Spring bean的作用域以及生命周期
一.request与session的区别 request简介 request范围较小一些,只是一个请求. request对象的生命周期是针对一个客户端(说确切点就是一个浏览器应用程序)的一次请求,当请 ...
- spring bean 的作用域之间有什么区别
spring bean 的作用域之间有什么区别? spring容器中的bean可以分为五个范围.所有范围的名称都是说明的, 1.singleton:这种bean范围是默认的,这种范围确保不管接受到多个 ...
- spring bean 的作用域
spring bean 的作用域: 1.单例(singleton):默认是单例模式,也就是说不管给定的bean被注入到其他bean多少次,注入的都是同一个实例. 2.原型(prototype):每次注 ...
- Spring bean的作用域和生命周期
bean的作用域 1.singleton,prototype, web环境下:request,session,gloab session 2.通过scope="" 来进行配置 3. ...
- [跟我学spring][Bean的作用域]
Bean的作用域 什么是作用域呢?即“scope”,在面向对象程序设计中一般指对象或变量之间的可见范围.而在Spring容器中是指其创建的Bean对象相对于其他Bean对象的请求可见范围. Sprin ...
- Spring Bean的作用域类型
Bean的作用域类型 singleton :在Spring IOC容器中仅存在一个Bean实例,Bean以单实例的方式存在; prototype :每次从容器中调用Bean时,都返回一个新的实例,即每 ...
- spring bean的作用域和自动装配
1 Bean的作用域 l singleton单列:整个容器中只有一个对象实例,每次去访问都是访问同一个对象 默认是单列 l prototype原型: 每次获取bean都产生一个新的对象,比如Ac ...
- Spring Bean Scope (作用域)
singleton: 单例模式,针对每个spring容器,只有一个该类的实例被管理,每次调用此实例都是同一个对象被返回,所以适用于无状态bean.默认情况下,singleton作为spring容器中b ...
- Spring Bean的作用域以及lookup-method标签的使用
Spring Framework支持五种作用域,如下图所示: singleton:表示一个容器中只会存在一个bean实例,无论在多少个其他bean里面依赖singleton bean,整个容器都只会存 ...
随机推荐
- Win64 驱动内核编程-2.基本框架(安装.通讯.HelloWorld)
驱动安装,通讯,Hello World 开发驱动的简单流程是这样,开发驱动安装程序,开发驱动程序,然后安装程序(或者其他程序)通过通讯给驱动传命令,驱动接到之后进行解析并且执行,然后把执行结果返回. ...
- WideCharToMultiByte 与 MultiByteToWideChar
先看看这篇关于Windows编码的文章:http://blog.csdn.net/shyboy_nwpu/article/details/4431668 再看看这篇关于两个函数参数和用法的说明:htt ...
- 【JavaScript】Leetcode每日一题-二叉搜索树的范围和
[JavaScript]Leetcode每日一题-二叉搜索树的范围和 [题目描述] 给定二叉搜索树的根结点 root,返回值位于范围 [low, high] 之间的所有结点的值的和. 示例1: 输入: ...
- php 实现图片下载,文件下载
1.控制器public function downPic(){ $filename = input('file','','string'); //文件所在路径 // 检查文件是否存在 if (! fi ...
- Windows进程间通讯(IPC)----管道
管道的分类 管道其实际就是一段共享内存,只不过Windows规定需要使用I/O的形式类访问这块共享内存,管道可以分为匿名管道和命名管道. 匿名管道就是没有名字的管道,其支持单向传输数据,如果需要双向传 ...
- copy和deep.copy
https://blog.csdn.net/qq_32907349/article/details/52190796 加上crossin公众号上的可变对象与不可变对象 a=[1,2,3,[4]] b= ...
- pt-online-schema-change 大数据表结构修改
使用场景: 在线修改大数据量表结构(ALTER tables without locking them) 文档参考:https://www.percona.com/doc/percona-toolki ...
- CVE-2020-1350 详解与复现
# 漏洞简介 在Windows上,DNS服务器是域控制器,其管理员是Domain Admins组的一部分.默认情况下,Domain Admins组是已加入域的所有计算机上Administrators组 ...
- Build 2021 :正式发布.NET 6 Preview4
微软在不断推进.NET 6的可用性,昨晚的Build 2021大会上发布了Preview4, 这是一个很大的版本更新,带来大量的功能,以及接近最终的产品交付质量,不过,这并不意味着可以在生产环境使用了 ...
- 攻防世界(三)Web_php_unserialize
攻防世界系列:Web_php_unserialize 0x01.代码审计 1.类Demo中struct().destruct()函数分别在代码执行开始和结束时调用.而wakeup函数会在代码执行过程中 ...