Bean的作用域和生命週期

2021-10-23 17:50:57 字數 1206 閱讀 8811

bean的作用域

作用域名稱

描述singleton

預設的作用域,使用singleton定義的bean在spring中只有乙個bean例項

proptotype

spring容器每次獲取prototype定義的bean,都會建立乙個新的bean例項

request

在http請求中,容器將返回乙個bean例項,不同的http請求,返回不同的bean例項;僅在web spring 應用程式上下文使用

session

在http session中,容器將返回乙個bean例項;僅在web spring 應用程式上下文使用

為每個servletcontext物件建立乙個例項,同乙個應用共享乙個bean例項;僅在web spring 應用程式上下文使用

websocket

為每個websocket物件建立乙個例項;僅在web spring 應用程式上下文使用

bean的生命週期

spring 容器可以管理singleton作用域bean的生命週期,soring能精確的知道bean什麼時候被建立、初始化、銷毀;而被prototype作用域的bean,spring只負責建立,bean例項化後就交給客戶端**管理,spring將不再跟蹤其的生命週期;spring生命週期執行是乙個很複雜的過程,可以借鑑servlet的生命週期來理解,例項化——>初始化(init)——>接受請求——>銷毀(destory);

例項演示bean生命週期

建立乙個beanlife類,有兩個方法,分別是初始化過程和銷毀過程

public class beanlife 

public void destorymyself()

}

配置bean,init-method屬性指定初始化方法,destroy-method屬性指定銷毀方法

<?xml version="1.0" encoding="utf-8"?>

測試生命週期

可以看出,在執行配置檔案時就已經載入了初始化方法,得到物件後,關閉容器時,就執行了銷毀方法

bean 作用域和生命週期

bean的作用域分為 singleton 單例 prototype 多例 request 每次http請求產生乙個例項,僅在當前request內有效 session 每次http請求產生乙個例項,僅在當前session內有效 globalsession 類似於標準的 http session 作用域...

Bean的作用域及生命週期

bean有7種作用域,只詳細了解其中最常用的兩種 singleton prototype singleton 單例 在每個spring ioc容器中乙個bean定義對應乙個物件例項。singleton是spring容器的預設作用域。scope class com.woongcha.scope.sco...

Spring之Bean(作用域 生命週期)

生命週期 在spring中,哪些構成應用程式的主體以及被spring ioc容器託管的物件叫做bean 下面簡單的介紹一下五種作用域 類別簡介 singleton 在spring ioc容器中僅存在乙個bean例項,bean以單例方式存在,也是預設作用域 prototype 每次從容器中呼叫bean...