Spring学习笔记(二)Bean的作用域
2015-10-21 10:07
302 查看
所有的Spring Bean默认都是单例。当容器分配一个Bean时(不论是通过装配还是调用容器的getBean()方法),它总是返回Bean的同一个实例。
当我们要求每次请求时都获得唯一的bean实例(比如车站的车票,每个人都必须给予一张不同的车票,不能所有人都用同一张车票),那如何覆盖Spring默认的单例配置呢?
我们可以通过修改Bean的scope属性来实现。
Spring提供的几个作用域选项,如下:
1.singleton 在每一个Spring容器中,一个Bean定义只有一个对象实例(默认)。
2.prototype 允许Bean的定义可以被实例化任意次(每次调用都创建一个实例)
3.request 在一次http请求中,每个Bean定义对应一个实例。该作用域仅在基于web的Spring上下文(例如:Spring MVC)中才有效。
4.session 在一个http seyssion中,每个bean定义对应一个实例。该作用域仅在基于web的Spring上下文(例如:Spring MVC)中才有效。
5.global-session 在一个全局Http Session中,每个Bean定义一个对应一个实例。该作用域仅在Portlet上下文中才有效。
初始化和销毁Bean
为Bean定义初始化和销毁操作,只需要使用init-method 和 destory-method参数来配置<bean>元素。init-method属性指定了在初始化Bean时要调用的方法。类似地,destory-method属性指定了Bean从容器移除之前要调用的方法。
当我们要求每次请求时都获得唯一的bean实例(比如车站的车票,每个人都必须给予一张不同的车票,不能所有人都用同一张车票),那如何覆盖Spring默认的单例配置呢?
我们可以通过修改Bean的scope属性来实现。
Spring提供的几个作用域选项,如下:
1.singleton 在每一个Spring容器中,一个Bean定义只有一个对象实例(默认)。
2.prototype 允许Bean的定义可以被实例化任意次(每次调用都创建一个实例)
3.request 在一次http请求中,每个Bean定义对应一个实例。该作用域仅在基于web的Spring上下文(例如:Spring MVC)中才有效。
4.session 在一个http seyssion中,每个bean定义对应一个实例。该作用域仅在基于web的Spring上下文(例如:Spring MVC)中才有效。
5.global-session 在一个全局Http Session中,每个Bean定义一个对应一个实例。该作用域仅在Portlet上下文中才有效。
初始化和销毁Bean
为Bean定义初始化和销毁操作,只需要使用init-method 和 destory-method参数来配置<bean>元素。init-method属性指定了在初始化Bean时要调用的方法。类似地,destory-method属性指定了Bean从容器移除之前要调用的方法。
相关文章推荐
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- 模拟Spring的简单实现
- spring+html5实现安全传输随机数字密码键盘
- Spring中属性注入详解
- struts2 spring整合fieldError问题
- spring的jdbctemplate的crud的基类dao
- 读取spring配置文件的方法(spring读取资源文件)
- Spring Bean基本管理实例详解
- java实现简单美女拼图游戏
- java基本教程之线程休眠 java多线程教程
- JSP开发中在spring mvc项目中实现登录账号单浏览器登录
- spring boot实战之内嵌容器tomcat配置
- 基于Spring框架的Shiro配置方法
- Spring MVC中上传文件实例
- spring aop两种配置方式
- 实例讲解Java的Spring框架中的AOP实现
- 解析Java中如何获取Spring中配置的bean