Spring框架中有哪些bean的作用域?

Spring框架中有如下5种常见的bean作用域:

  1. singleton(单例):默认作用域,每个spring容器只会创建一个bean实例,所有请求该bean的对象都会共享同一个实例。

  2. prototype(原型):每次请求该bean时都会创建一个新的实例,每个请求都会得到一个新的实例。

  3. request(请求):在一次HTTP请求中,每个bean实例都会被创建一次。该作用域只在使用Spring MVC Web应用时有效。

  4. session(会话):在一次HTTP Session中,每个bean实例都会被创建一次。该作用域只在使用Spring MVC Web应用时有效。

  5. global-session(全局会话):在portlet上下文中,全局会话作用域拥有与HTTP Session一样的生命周期,而且只对portlet上下文有效。

要指定bean的作用域,可以在bean定义中使用scope属性,例如:

<bean id="myBean" class="com.example.MyBean" scope="prototype">
   <!-- bean properties -->
</bean>

或者使用注解的方式指定作用域,例如:

@Component
@Scope("request")
public class MyRequestScopedBean {
    
    
   // ...
}

猜你喜欢

转载自blog.csdn.net/a772304419/article/details/131330333