bean的作用域有5种:我们常用的就两种,分别为singleton,prototype,下面我介绍一下五种作用域的适用环境:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- bean 作用域
* singleton 单例,只创建一个实例。默认值,在Spring IoC容器中仅存在一个Bean实例,Bean以单例方式存在,整合servlet时用
* prototype 多例,每次从容器中调用Bean时,都返回一个新的实例,即每次调用getBean()时 ,相当于执行new XxxBean(),整合struts时用
* request,request范围,request.setAttribute,每次HTTP请求都会创建一个新的Bean,该作用域仅适用于WebApplicationContext环境
* session,session范围,session.setAttribute,同一个HTTP Session 共享一个Bean,不同Session使用不同Bean,仅适用于WebApplicationContext 环境
* globalSession , prolet 分布式门户,sso(单点登录)将不同的应用的数据保存到globalSession中,达到数据共享,该作用域仅适用于WebApplicationContext 环境
-->
<bean id="person" class="cn.adwo.Person" scope="prototype"></bean>
</beans>