...
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
...
ContextLoaderListener预设会读取applicationContext.xml,您可以指定自己的定义档,只要在<context-param>中指定"contextConfigLocation"参数,例如:
...
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/beans-config.xml,
→ /WEB-INF/demo-service.xml</param-value>
</context-param>
...
接着您可以在自定义的Servlet中使用 org.springframework.web.context.support.WebApplicationContextUtils,从 ServletContext中取得org.springframework.web.context.WebApplicationContext,例如:
WebApplicationContext ctx =
WebApplicationContextUtils.
getRequiredWebApplicationContext(
this.getServletContext());
WebApplicationContext实作了ApplicationContext介面,是Spring专为Servlet的Web应用程式设计的 ApplicationContext实作类别,在取得WebApplicationContext之后,您可以利用它来取得Bean定义档中定义的 Bean实例,例如:
Date date = (Date) ctx.getBean("dateBean");
在不支援Listener设定的容器上(例如Servlet 2.2以更早的版本),您可以使用org.springframework.web.context.ContextLoaderServlet来取代上面的ContextLoaderListener的设定,例如:
...
<servlet>
<servlet-name>contextLoader</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
...
综合以上的叙述,撰写一个简单的范例来示范完整的组态方式,假设您撰写了一个简单的Servlet程式,作用为提供简单的报时功能,如下所示:
TimeServlet.java
package onlyfun.caterpillar; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import org.springframework.web.context.WebApplicationContext;import org.springframework.web.context. support.WebApplicationContextUtils; public class TimeServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { WebApplicationContext ctx = WebApplicationContextUtils. getRequiredWebApplicationContext( this.getServletContext()); PrintWriter out = res.getWriter(); out.println(ctx.getBean("dateBean")); } }
这个Servlet中使用了WebApplicationContext来尝试取得dateBean,您可以在web.xml中定义ContextLoaderListener与Bean定义档的位置,例如:
web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee →http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <session-config> <session-timeout> 30 </session-timeout> </session-config> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/beans-config.xml</param-value> </context-param> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <servlet> <servlet-name>time</servlet-name> <servlet-class> onlyfun.caterpillar.TimeServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>time</servlet-name> <url-pattern>/time.do</url-pattern> </servlet-mapping> </web-app>
在<context-param>的"contextConfigLocation"属性中,设定了Bean定义档的位置与名称,Bean定义档的内容如下所示:
beans-config.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="dateBean" class="java.util.Date" singleton="false"/></beans>
相关推荐
org.springframework.web.context.WebApplicationContext.class org.springframework.web.context.request.AbstractRequestAttributes.class org.springframework.web.context.request....
`org.springframework.context`包不仅是Spring的核心,也是与其他模块如数据访问/集成、Web、测试等集成的基础。在3.0.5.release版本中,这些模块之间的协同工作更加紧密,提供了更加丰富的功能。 总结,`org....
信息: The listener "org.springframework.web.context.ContextLoaderListener" is already configured for this context. The duplicate definition has been ignored. log4j:WARN No appenders could be found for...
10. **Web应用程序上下文**:`org.springframework.web.context`包提供了WebApplicationContext,它是ApplicationContext的子类,专为Web应用设计。 六、源码学习方法 深入理解Spring源码需要对Java反射、动态代理...
xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd ...
org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,accountBiz,dataSource,sqlSessionFactory,...
这个简单的例子演示了在 web 应用程序中使用的 Spring 容器,即org.springframework.web.context.WebApplicationContext Web 应用程序使用 Spring Web 侦听器初始化,例如web.xml org.springframework.web.context...
[[03 08:58:22,466 INFO ] org.springframework.context.support.AbstractApplicationContext.prepareRefresh(AbstractApplicationContext.java:511) - Refreshing WebApplicationContext for namespace 'hessian-...
4. `org.springframework.web-3.0.6.RELEASE.jar`: 这个模块包含了一些通用的Web辅助类,如WebApplicationContext和HttpRequestHandler,它们为Web应用程序的开发提供了基础支持。 5. `org.springframework.jdbc-...
6. **org.springframework.web.context**: 这里包含了Web应用上下文,WebApplicationContext是ApplicationContext的子类,它提供了与Web环境相关的功能,如Servlet上下文的访问和初始化。 7. **org.springframework...
4. `org.springframework.web-3.0.2.RELEASE.jar`:这个库包含了一些 Web 相关的支持类,如 Web 应用上下文(WebApplicationContext)、HTTP 拦截器(HandlerInterceptor)和请求映射(RequestMapping)等,它们与 ...
import org.springframework.web.context.WebApplicationContext; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web....
Spring框架提供了对Web应用的支持,其中包括`org.springframework.web.context.WebApplicationContext`接口。这个接口扩展了`ApplicationContext`,专门为Web应用设计,提供了处理HTTP请求和响应的能力。与传统的`...
import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; public class BaseDispatchAction { protected ...
<listener-class>org.springframework.web.context.ContextLoaderListener ``` `ContextLoaderListener`监听Web应用程序的启动和结束,它在服务器启动时加载`contextConfigLocation`指定的配置文件,并创建...
<filter-class>org.springframework.web.filter.CharacterEncodingFilter <param-name>encoding <param-value>UTF-8 <filter-name>characterEncodingFilter <url-pattern>/* <servlet-name>struts...
2. 配置WebApplicationContext:servlet使用已创建的org.springframework.web.context.WebApplicationContext来配置自己。 在Servlet 3.0中,提供了多种配置和注册servlet的方式: * 使用web.xml文件(listing 1)...
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor" /> <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn" /> ``` - **Spring配置文件**:在`...
1. **Servlet上下文**:`spring-web.jar`提供了`WebApplicationContext`,这是Spring应用程序在Web环境中的上下文。它允许bean与Servlet上下文进行交互,例如注册监听器、过滤器等。 2. **HTTP处理**:包括`...
<listener-class>org.springframework.web.context.ContextLoaderListener <context-param> <param-name>contextConfigLocation classpath:applicationContext.xml; </context-param> ``` 这段配置告诉Web...