SpringXML方式配置bean的生存范围Scope
在一个bean的配置里面可以指定一个属性Scope,也就是bean的范围,bean的生命周期。
Scope可取的值5种:singleton(默认)、prototype、request、session、global session
其中最常用的就是:singleton和prototype,其他的三个是和web相关的,很少使用。
singleton:也就是单例模式。表示这个bean是单例模式,每次获取都是同一个bean
prototype:多例模式,也就是每次获取的都是一个新对象,使用场景:在action上需要设置为prototype
例如:user这个bean,默认的Scope属性我们没有配置,也就是singleton模式
|
1
2
3
4
5
6
|
<bean name="user" class="com.fz.entity.User" > <property name="id" value="1"></property> <property name="username" value="fangzheng"></property> <property name="password" value="123456"></property> <property name="role" ref="role"></property></bean> |
测试singleton,结果为true
|
1
2
3
4
5
6
7
|
@Testpublic void getProperties(){ ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); User user1 = (User) ctx.getBean("user"); User user2 = (User) ctx.getBean("user"); System.out.println(user1 == user2);//结果为true } |
添加scope=prototype
在<bean>上加入scope=prototype之后。
|
1
2
3
4
5
6
|
<bean name="user" class="com.fz.entity.User" scope="prototype"> <property name="id" value="1"></property> <property name="username" value="fangzheng"></property> <property name="password" value="123456"></property> <property name="role" ref="role"></property></bean> |
测试prototype,结果为false
|
1
2
3
4
5
6
7
|
@Testpublic void getProperties(){ ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); User user1 = (User) ctx.getBean("user"); User user2 = (User) ctx.getBean("user"); System.out.println(user1 == user2);//结果为false} |
SpringXML方式配置bean的生存范围Scope的更多相关文章
- SpringXML方式配置bean的生命周期lifecycle
在Spring中容器在初始化某个bean的时候会有相应的生命周期,类似于Servlet,有相应的init,destory等方法 例如:如下service 1 2 3 4 5 6 7 8 9 10 11 ...
- SpringXML方式配置bean的自动装配autowire
Spring的自动装配,也就是定义bean的时候让spring自动帮你匹配到所需的bean,而不需要我们自己指定了. 例如: User实体类里面有一个属性role 1 2 3 4 5 6 7 publ ...
- SpringXML方式配置bean的集合注入:list,map,properties
新建一个bean,设置相应的集合属性 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 public class Collecti ...
- SpringXML方式配置bean的懒加载lazy-init
lazy-init(懒加载),表示该bean在容器初始化的时候不进行初始化. 例如: <bean name="role1" class="com.fz.entity ...
- 跟着刚哥学习Spring框架--通过XML方式配置Bean(三)
Spring配置Bean有两种形式(XML和注解) 今天我们学习通过XML方式配置Bean 1. Bean的配置方式 通过全类名(反射)的方式 √ id:标识容器中的bean.id唯一. √ cl ...
- 跟着刚哥学习Spring框架--通过注解方式配置Bean(四)
组件扫描:Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件. 特定组件包括: 1.@Component:基本注解,识别一个受Spring管理的组件 2.@Resposit ...
- spring学习笔记 星球日two - 注解方式配置bean
注解要放在要注解的对象的上方 @Autowired private Category category; <?xml version="1.0" encoding=" ...
- spring学习笔记 星球日one - xml方式配置bean
ide: idea lib包的导入:http://webcache.googleusercontent.com/search?q=cache:http://zyjustin9.iteye.com/bl ...
- Spring框架学习(6)使用ioc注解方式配置bean
内容源自:使用ioc注解方式配置bean context层 : 上下文环境/容器环境 applicationContext.xml 1 ioc注解功能 注解 简化xml文件配置 如 hibernate ...
随机推荐
- ansible playbook部署ELK集群系统
一.介绍 总共4台机器,分别为 192.168.1.99 192.168.1.100 192.168.1.210 192.168.1.211 服务所在机器为: redis:192.168.1.211 ...
- RabbitMQ学习之(五)_一个基于PHP的RabbitMQ操作类
//amqp.php类文件 <?php class Amqp { public $e_name; public $q_name; public $k_route; public $channel ...
- React 常用插件库
js 加密 crypto-js (des加密,md5) crypto-js https://www.npmjs.com/package/crypto-js Mock联调 数据是前端开发过程中必不可少的 ...
- 【ES6】改变 JS 内置行为的代理与反射
代理(Proxy)可以拦截并改变 JS 引擎的底层操作,如数据读取.属性定义.函数构造等一系列操作.ES6 通过对这些底层内置对象的代理陷阱和反射函数,让开发者能进一步接近 JS 引擎的能力. 一.代 ...
- Session管理之超时设置和强制下线
关于Session,在Java Web开发中,为我们提供了很多方便,Session是由浏览器和服务器之间维护的.好吧,闲话不多说,下面让我们一步一步来实现它们. (一)首先来说下Session超时时间 ...
- 如何用纯 CSS 创作一个单元素抛盒子的 loader
效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/qKwXbx 可交互视频 ...
- Java搞笑注释(佛-)
// _ooOoo_ // o8888888o // 88" . "88 // (| -_- |) // O\ = /O // ____/`---'\____ // . ' \\| ...
- RMI远程方法调用
RMI远程方法调用:适用于 客户端 调用 服务器 内的方法:(Kotlin 语言编写) 如果业务为二个服务器之间的通信,还是得用消息队列的形式,因为RMI 不适合 双向 调用 下面介绍RMI 的使用方 ...
- hdfs的FileSystem实例化
前言 在spark中通过hdfs的java接口并发写文件出现了数据丢失的问题,一顿操作后发现原来是FileSystem的缓存机制.补一课先 FileSystem实例化 FileSystem.get(c ...
- 问下大家,chorme里用开发者工具看headers,点network标签然后刷新网页并没有headers选项,怎么破?
问下大家,chorme里用开发者工具看headers,点network标签然后刷新网页并没有headers选项,怎么破? 请教个问题 jmeter在Linux服务器压测,抛出很多错误率 但日志中没看到 ...