spring 獲取bean的幾種方式


  1.讀取xml文件的方式,這種在初學入門的時候比較適用 。

    ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:tt.xml");

    ApplicationContext applicationContext = new FileSystemXmlApplicationContext("classpath:tt.xml");

  2.繼承spring的Aware類,覆蓋方法實現獲取上下文,從上下文中獲取。

  

    2.1.繼承自抽象類ApplicationObjectSupport
    說明:抽象類ApplicationObjectSupport提供getApplicationContext()方法,可以方便的獲取到ApplicationContext。
    Spring初始化時,會通過該抽象類的setApplicationContext(ApplicationContext context)方法將ApplicationContext 對象注入。

    2.2:繼承自抽象類WebApplicationObjectSupport
    說明:類似上面方法,調用getWebApplicationContext()獲取WebApplicationContext

    2.3:實現接口ApplicationContextAware
     說明:實現該接口的setApplicationContext(ApplicationContext context)方法,並保存ApplicationContext 對象。
    Spring初始化時,會通過該方法將ApplicationContext對象注入。

private static ApplicationContext applicationContext=null;

@Override

public void setApplicationContext(ApplicationContext applicationContext)

throws BeansException {

this.applicationContext = applicationContext;

 

}

  3.借助於spring提供的工具類,

    WebApplicationContextUtils.getWebApplicationContext(ServletContext) 需要傳入Servletcontext ,

    通常從request中獲取req.getSession().getServletContext()。適合於controller或者action中直接獲取,但通常會直接@autoWire注入。

  4.適用工具類ContextLoader.getCurrentWebApplicationContext()。這種最簡單,用起來最方便,不需要繼承,不需要注入,直接使用靜態代碼。注意一點,在服務器啟動時,Spring容器初始化時,不能使用,在應用啟動后方可使用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM