在Spring中,可以在xml中的<bean>
标签或使用@Scope
注解指定bean的作用域,来决定这个bean的创建方式;
- xml :
<bean id="userService" class="xxx" scope="singleton" />
- 注解:@Scope(value = “singleton”)
默认情况下, spring只为每个在IOC容器里声明的bean创建唯一一个实例,整个IOC容器范围内都能共享该实例:所有后续的getBean() 调用和bean 引用都将返回这个唯一的bean实例。该作用域被称为 singleton,它是所有bean的默认作用域。
类型 | 说明 |
---|---|
singleton | 在SpringlOC容器中仅存在一个Bean实例,Bean以单实例的方式存在 |
prototype | 每次请求都会返回一个新的实例 |
request | 每次HTTP请求都会创建一个新的Bean,该作用域仅适用于 WebApplicalionContext 环境 |
session | 同一个HTTP Session共享一个Bean,该作用域仅适用于WebApplicationContext 环境 |