spring bean作用域

Author Avatar
丁起男 10月 30,2020
  • 在其它设备中阅读本文章

spring bean作用域

singleton单例模式

spring ioc容器中只会存在一个共享的bean实例,无论有多少个bean引用它,始终指向同一对象。

该模式在多线程下是不安全的。

singleton作用域是spring中的缺省作用域,也可以显示的将bean定义为singleton模式

prototype原型模式

每次通过spring容器获取prototype定义的bean时,容器都将创建一个新的bean实例,每个bean实例都有自己的属性和状态,而singleton全局只有一个bean。

对应有状态的bean使用prototype作用域,而对无状态的bean使用singleton作用域。

request一个请求一个实例

在一次http请求中,容器会返回该bean的同一实例。

而对不同的http请求则会产生新的bean,而且该bean仅在当前request内有效,当前request结束,该bean实例也将被销毁。

session

在一次http session中,容器会返回该bean的同一实例。

而对不同的session请求则会创建新的实例,该bean实例仅在当前session内有效。

每一次session请求创建新的实例,而不同的实例之间不共享属性,且实例仅在自己的session请求内有效,session结束,则实例将被销毁。

global session

在一个全局的http session中,容器会返回该bean的同一个实例,仅在使用 protlet context时有效