當定義一個Spring的<bean>,必須聲明bean 做用域的選項。例如,要強制Spring須要產生一個新的bean實例,應該聲明bean的scope屬性爲prototype。若是你但願Spring 每次都返回同一個bean實例,應該聲明bean的做用域,方式相似屬性是單例。web
Spring框架支持如下五個做用域,其中三個只有當您使用Web感知的 ApplicationContext 可用。緩存
範圍 | 描述 |
---|---|
singleton | This scopes the bean definition to a single instance per Spring IoC container (default). |
prototype | This scopes a single bean definition to have any number of object instances. |
request | This scopes a bean definition to an HTTP request. Only valid in the context of a web-aware Spring ApplicationContext. |
session | This scopes a bean definition to an HTTP session. Only valid in the context of a web-aware Spring ApplicationContext. |
global-session | This scopes a bean definition to a global HTTP session. Only valid in the context of a web-aware Spring ApplicationContext. |
本章將討論前兩個範圍和其他三將討論的時候,咱們將討論有關Web感知Spring的ApplicationContext。session
singleton做用域:框架
若是範圍設置爲單例,Spring IoC容器建立了一個由該bean定義的對象只有一個實例。這個單一實例存儲在這樣的單例bean的高速緩存,以及全部後續請求和引用針對該bean返回緩存對象。prototype