1. 程式人生 > >spring 獲取bean幾種方式

spring 獲取bean幾種方式

這種方式適合於採用Spring框架的B/S系統,通過ServletContext物件獲取ApplicationContext物件,然後在通過它獲取需要的類例項。
這個類提供了方便的功能,這樣你就不必去記 ServletContext 中屬性的名字。 它的getWebApplicationContext() 方法在 WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE 這個鍵值不對應任何物件的時候將返回 null。不過,為了避免在應用中得到 NullPointerExceptions ,我們推薦你使用 getRequiredWebApplicationContext()
 方法。這個方法在ApplicationContext 缺失的時候會丟擲一個異常。
上面兩個工具方式的區別是,前者在獲取失敗時丟擲異常,後者返回null。
  方法三:繼承自抽象類ApplicationObjectSupport
抽象類ApplicationObjectSupport提供()方法,可以方便的獲取到ApplicationContext。Spring初始化時,會通過該抽象類的setApplicationContext(ApplicationContext context)方法將ApplicationContext 物件注入。

方法四:繼承自抽象類WebApplicationObjectSupport
 類似上面方法,呼叫getWebApplicationContext()獲取WebApplicationContext 方法五:實現介面ApplicationContextAware 實現該介面的setApplicationContext(ApplicationContext context)方法,並儲存ApplicationContext 物件。Spring初始化時,會通過該方法將ApplicationContext 物件注入。
我自己是在web.xml中配置,然後用一個監聽器呼叫一個類直接讀取,在tomcat啟動時執行
web.xml
<context-param>
 <param-name>contextConfigLocation</param-name>
 <param-value>/WEB-INF/config/spring/applicationContext.xml</param-value>