spring 獲取bean幾種方式
阿新 • • 發佈:2019-01-03
這種方式適合於採用Spring框架的B/S系統,通過ServletContext物件獲取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>
這個類提供了方便的功能,這樣你就不必去記 ServletContext 中屬性的名字。 它的getWebApplicationContext() 方法在 WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE 這個鍵值不對應任何物件的時候將返回 null。不過,為了避免在應用中得到 NullPointerExceptions ,我們推薦你使用 getRequiredWebApplicationContext() 方法。這個方法在ApplicationContext 缺失的時候會丟擲一個異常。
上面兩個工具方式的區別是,前者在獲取失敗時丟擲異常,後者返回null。
方法三:繼承自抽象類ApplicationObjectSupport
抽象類ApplicationObjectSupport提供()
方法,可以方便的獲取到
ApplicationContext。Spring初始化時,會通過該抽象類的setApplicationContext(ApplicationContext context)方法將ApplicationContext 物件注入。
方法四:繼承自抽象類WebApplicationObjectSupport
我自己是在web.xml中配置,然後用一個監聽器呼叫一個類直接讀取,在tomcat啟動時執行
web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/config/spring/applicationContext.xml</param-value>