1. Singleton(单例): 在整个应用中,只存在一个Bean实例。默认情况下,所有Spring Bean都是单例的。
<bean id="myBean" class="com.example.MyBean" scope="singleton" />
2. Prototype(原型): 每次通过容器获取Bean时,都会创建一个新的实例。
<bean id="myBean" class="com.example.MyBean" scope="prototype" />
3. Request: 在一次HTTP请求中,容器会为每个请求创建一个新的Bean实例。
<bean id="myBean" class="com.example.MyBean" scope="request" />
4. Session: 在一个HTTP Session中,容器会为每个Session创建一个新的Bean实例。
<bean id="myBean" class="com.example.MyBean" scope="session" />
5. Global Session: 在一个全局HTTP Session中,通常用于Portlet应用。
<bean id="myBean" class="com.example.MyBean" scope="globalSession" />
在Java配置类中,可以使用@Scope注解来指定作用域:
@Configuration
public class AppConfig {
@Bean
@Scope("singleton")
public MyBean singletonBean() {
return new MyBean();
}
@Bean
@Scope("prototype")
public MyBean prototypeBean() {
return new MyBean();
}
}
默认情况下,Spring中的Bean都是单例的,这意味着容器中只存在一个实例。如果需要更灵活的管理Bean的生命周期,可以根据具体需求选择合适的作用域。
转载请注明出处:http://www.pingtaimeng.com/article/detail/6937/Spring