参考
http://hi.baidu.com/yawiki/blog/item/bff69822c1556bf3d6cae264.html
文中指出
在Web应用中,我们会用到WebApplicationContext,WebApplicationContext继承自ApplicationContext,先让我们看看在Web应用中,怎么初始化WebApplicationContext,在web.xml中定义:
<context-param>
<param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value></context-param>
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>
实际配置如下,用的就是ContextLoaderListener
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app> <display-name>XMNMS</display-name> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/classes/log4j.properties</param-value> </context-param> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/applicationContext-basic.xml /WEB-INF/applicationContext-security-acegi.xml </param-value> </context-param>
<filter-mapping> <filter-name>Acegi Filter Chain Proxy</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
<!-- - Loads the root application context of this web app at startup. - The application context is then available via - WebApplicationContextUtils.getWebApplicationContext(servletContext). --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
<listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener>
<!-- The HttpSessionEventPublisher will publish HttpSessionCreatedEvent and HttpSessionDestroyedEvent to the WebApplicationContext --> <listener> <listener-class>net.sf.acegisecurity.ui.session.HttpSessionEventPublisher</listener-class> </listener>
</web-app>
页面中调用,如下<%@ page import="org.springframework.web.context.WebApplicationContext"%><%@ page import="org.springframework.web.context.support.WebApplicationContextUtils"%><%@ page import="sample.service.IContactManager"%>
<% WebApplicationContext wac =WebApplicationContextUtils.getRequiredWebApplicationContext(pageContext.getServletContext()); IContactManager contactManager= (IContactManager) wac.getBean("contactManager"); List contacts=null; try{ //有授权 contacts=contactManager.getAll(); } catch(Exception e){ e.printStackTrace(); }
%>
