Bean的作用域

配置方式

<!--XML配置-->
# 单例作用域 singleton
<bean id="John" class="com.entity.dao.user" scope="singleton"/>

# 原型作用域 prototype
<bean id="Jhon" class="com.entity.dao.user" scope="prototype"/>
<!--注解配置-->
@Component("bar")
@Scope("singleton")
public class Bar {
}

七大作用域

1、单例作用域【singleton】

  • 默认方式为单例作用域
  • 每个Spring IOC容器只会创建一个对象

    2、原型作用域【prototype】

  • 应用进程每请求一次,就会创建一个新实例

    3、请求作用域

  • 用于Web应用进程
  • Web应用进程Spring MVC时,针对于每个HTTP 请求 ,实例化带有请求作用域的Bean
  • 请求完成时进行销毁

    4、会话作用域

  • 用于Web应用进程
  • Web应用进程Spring MVC时,针对于每个HTTP 会话,实例化带有会话作用域的Bean
  • 会话完成时进行销毁

    5、全局会话作用域

  • 基于Portlet的Web应用进程
  • 带有全局会话作用域的Bean可以在同一个Spring MVC的驱动门户应用进程的所有Portlet之间共享

    6、线程作用域

  • 一个新的线程请求Bean的实例时,Spring将创建一个新的Bean实例。
  • 同一线程返回相同的Bean实例
  • 默认情况下未注册

    7、自定义作用域