当 Web 应用集成 Spring 容器后,代表 Spring 容器的WebApplicationContext对象将以
WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE 为键存放在ServletContext的属性列表中。您当然可以直接通过以下语句获取 WebApplicationContext:
WebApplicationContext wac = (WebApplicationContext)servletContext.
getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
但通过位于 org.springframework.web.context.support 包中的WebApplicationContextUtils 工具类获取 WebApplicationContext 更方便:
WebApplicationContext wac =WebApplicationContextUtils.
getWebApplicationContext(servletContext);
当 ServletContext 属性列表中不存在 WebApplicationContext 时,getWebApplicationContext() 方法不会抛出异常,它简单地返回 null。如果后续代码直接访问返回的结果将引发一个 NullPointerException 异常,而 WebApplicationContextUtils 另一个 getRequiredWebApplicationContext(ServletContext sc) 方法要求 ServletContext 属性列表中一定要包含一个有效的 WebApplicationContext 对象,否则马上抛出一个 IllegalStateException 异常。我们推荐使用后者,因为它能提前发现错误的时间,强制开发者搭建好必备的基础设施。
实例:
public class demoServlet extends HttpServlet {
IDemoWS demoWS;
public void init() throws ServletException {
super.init();
ServletContext servletContext = this.getServletContext();
WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);
demoWS = (ISignpicWS)ctx.getBean("demoWS");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
.....//request.getSession().getServletContext()
}
}
分享到:
相关推荐
9. **WebApplicationContextUtils**: 用于从 ServletContext 中获取 Spring 的 WebApplicationContext,便于在非 Spring 控制的类中使用 Spring 服务。 10. **ConversionService**: 提供了对象转换功能,用于将请求...
监听器如 ContextLoaderListener 在项目启动时加载 Spring 配置文件并保存到 application 对象中,WebApplicationContextUtils 可以从 application 对象中获取 Spring 上下文。 【Spring 与 Hibernate 整合】 ...
8. **Spring Test**:Spring 2.0提供了集成测试支持,包括`MockMVC`和`WebApplicationContextUtils`等工具,帮助开发者编写单元测试和集成测试,确保代码质量。 9. **portlet支持**:Spring 2.0开始支持portlet开发...
Spring框架是Java开发中不可或缺的一部分,它以其模块化...通过更强大的注解配置、AOP增强、数据访问优化以及Web和测试框架的改进,Spring 3.1.0为Java开发者提供了更强大、更灵活的工具,促进了高效的企业级应用开发。
Spring 提供了丰富的测试工具,如 `org.springframework.test.context.ContextConfiguration` 和 `@Autowired` 注解,使单元测试和集成测试变得简单。`WebApplicationContextUtils` 和 `MockMvc` 类可以帮助我们模拟...
同时,Spring还提供了一个客户端工具WebApplicationContextUtils供使用者获得应用上下文对象。 因此,我们只需要在web.xml中配置ContextLoaderListener监听器,并使用WebApplicationContextUtils获得应用上下文对象...
文档中给出了一个名为 `SpringFacesUtil` 的工具类,用于实现 JSF 和 Spring 的集成。下面是对该工具类中的关键方法进行详细解析: - **findBean 方法**:该方法首先通过 `FacesContext` 获取当前的 `...
这种方法允许我们在不直接依赖于Spring工具类的情况下,通过ServletContext访问Bean,但这可能会导致代码对Spring的依赖更加隐蔽。 需要注意的是,这两种方法都依赖于Spring容器已经初始化,并且Bean已经被加载到...
4. `WebApplicationContextUtils`:帮助在Web应用程序的测试中获取WebApplicationContext。 5. `TestExecutionListener`:提供自定义测试监听器,可以在测试前、后执行特定操作。 6. `@Autowired`和`@MockBean`:...
此外,对于开发工具,无论是MyEclipse 6.0还是Eclipse,都需要配置好相应的服务器环境,比如设置Tomcat为项目的运行时环境。 接下来,文章会详细介绍如何准备Spring3的jar包。Spring3项目配置包括了添加Spring核心...
应用程序中的组件可以通过`WebApplicationContextUtils`工具类获取到`ApplicationContext`实例: ```java WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext); ```...
Flex作为一款强大的富客户端开发工具,而Spring则是Java领域内最流行的后端开发框架之一。本文将详细介绍如何通过Flex与Spring进行整合,从而实现前端Flex应用与后端基于Spring的三层架构服务之间的高效通信。 ####...
这样,我们可以通过`WebApplicationContextUtils`工具类的静态方法`getWebApplicationContext(ServletContext)`在Web应用的任何地方获取ApplicationContext对象,无需每次都手动创建。 3. **导入Spring集成Web的...
Spring MVC 是 Spring 框架中用于构建 Web 应用的强大工具,它的核心组件包括 DispatcherServlet、HandlerMapping、Controller 等。通过注解驱动开发,开发者可以快速创建可维护、可测试的 Web 应用。同时,Spring ...
import org.springframework.web.context.support.WebApplicationContextUtils; import org.springframework.beans.BeansException; import org.springframework.beans.factory.NoSuchBeanDefinitionException; ...
对于如何在Struts中使用Spring注入的Bean,可以通过覆盖`Action`类的`setServlet`方法,利用`WebApplicationContextUtils`从Servlet上下文中获取Spring的应用上下文,然后从中获取并注入所需的Bean。例如: ```java...
本篇将详细讲解如何在JSP中通过Spring的WebApplicationContextUtils工具类获取Spring注入的对象。 首先,我们要明确Spring的依赖注入机制。在Spring框架中,我们可以在XML配置文件或基于注解的方式下定义bean及其...
方法二:通过 Spring 提供的工具类获取 ApplicationContext 对象 在 B/S 系统中,通过 ServletContext 对象可以获取 WebApplicationContext 对象,然后通过它获取需要的类实例: `import org.springframework.web....
**Spring2.x集成Quartz调度框架** 在Java应用开发中,常常需要进行任务调度,例如定时执行某些业务逻辑。Quartz是一款强大的、开源的作业调度框架,它支持复杂的调度策略和集群环境。Spring框架则提供了良好的企业...