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

Spring 獲取bean 幾種方式

讀取 獲取 static ava ade beans java ride .html

轉載自: http://www.cnblogs.com/luoluoshidafu/p/5659574.html

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中直接獲取,[email protected]

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

Spring 獲取bean 幾種方式