方法一:
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext-common.xml");
ac.getBean("beanName");web
方法二:
ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext-common.xml");
ac.getBean("beanName");spring
方法三:
經過加載器app
ContextLoaderListener和ContextLoaderServlet(功能相同,實現不一樣接口。開發中可根據目標Web容器的實際狀況進行選擇。)
但不一樣的是,ContextLoaderListener不能在與Servlet 2.2兼容的web容器中使用。根據Servlet 2.4規 範, servlet context listener要在web應用程序的servlet context創建後當即執行,並要可以響應第一個請求 (在servlet context要關閉時也同樣):這樣一個servlet context listener是初始化 Spring ApplicationContext的理想場所。雖然使用哪一個徹底取決於你,可是在同等條件下應該首選 ContextLoaderListener;
在web.xml中增長:
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
或:
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
經過以上配置,Web容器會自動加載/WEB-INF/applicationContext.xml初始化
ApplicationContext實例,若是須要指定配置文件位置,可經過context-param加以指定:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/myApplicationContext.xml</param-value>
</context-param> spa
配置完成以後,便可經過
WebApplicationContextUtils.getWebApplicationContext方法在Web應用中獲取ApplicationContext引用。xml
如:
接口
ServletContext servletContext = request.getSession().getServletContext();
開發
ApplicationContext ctx=WebApplicationContextUtils.getWebApplicationContext(servletContext );
LoginAction action=(LoginAction)ctx.getBean("action");get