方法一:
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext-common.xml");
ac.getBean("beanName");
方法二:
ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext-common.xml");
ac.getBean("beanName");
方法三:
通过加载器
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>
配置完成之后,即可通过
WebApplicationContextUtils.getWebApplicationContext方法在Web应用中获取ApplicationContext引用。
如:
ServletContext servletContext = request.getSession().getServletContext();
ApplicationContext ctx=WebApplicationContextUtils.getWebApplicationContext(servletContext );
LoginAction action=(LoginAction)ctx.getBean("action");
来源:oschina
链接:https://my.oschina.net/u/820154/blog/188247