当 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()
}
}
相关推荐
获取文件的输入流以便读取内容。...Spring 的设计哲学就是简化开发,提高生产力,这些工具类正是这一理念的具体体现。在实际开发中,了解并熟练使用这些工具,可以显著提升开发效率,写出更加健壮、易于维护的代码。
文档中给出了一个名为 `SpringFacesUtil` 的工具类,用于实现 JSF 和 Spring 的集成。下面是对该工具类中的关键方法进行详细解析: - **findBean 方法**:该方法首先通过 `FacesContext` 获取当前的 `...
**配置Struts和Spring**:在Struts的Action中,通过Spring的`WebApplicationContextUtils`获取Spring容器中的Bean,将业务逻辑委托给Spring管理的对象。 h. **编写Action和视图**:实现业务逻辑的Action类,以及...
监听器如 ContextLoaderListener 在项目启动时加载 Spring 配置文件并保存到 application 对象中,WebApplicationContextUtils 可以从 application 对象中获取 Spring 上下文。 【Spring 与 Hibernate 整合】 ...
这种方法允许我们在不直接依赖于Spring工具类的情况下,通过ServletContext访问Bean,但这可能会导致代码对Spring的依赖更加隐蔽。 需要注意的是,这两种方法都依赖于Spring容器已经初始化,并且Bean已经被加载到...
- **编写Spring Factory**:为了能够从Flex端访问Spring中的服务,需要编写一个Spring Factory类。下面是一个示例代码: ```java package com.samples.factories; import org.springframework.context....
`WebApplicationContextUtils` 和 `MockMvc` 类可以帮助我们模拟 HTTP 请求和验证响应。 总结,Spring 3.07 通过其核心概念如 DI、AOP、IoC 容器、数据访问支持、MVC 框架和测试工具,为开发者提供了强大的后盾。...
例如,JdbcTemplate和SimpleJdbcInsert等工具类的改进提高了操作数据库的便捷性。对于ORM,Spring Data JPA项目引入了Repository抽象,使得与数据库的交互更加简洁,开发者可以快速实现CRUD操作。对于NoSQL数据库,...
6. **整合Struts和Spring**:在Struts的Action中,使用Spring的`@Autowired`注解注入Service层组件,或者通过`WebApplicationContextUtils`获取Spring应用上下文。 7. **整合Spring和Hibernate**:在Spring配置文件...
这样,我们可以通过`WebApplicationContextUtils`工具类的静态方法`getWebApplicationContext(ServletContext)`在Web应用的任何地方获取ApplicationContext对象,无需每次都手动创建。 3. **导入Spring集成Web的...
应用程序中的组件可以通过`WebApplicationContextUtils`工具类获取到`ApplicationContext`实例: ```java WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext); ```...
方法二:通过 Spring 提供的工具类获取 ApplicationContext 对象 在 B/S 系统中,通过 ServletContext 对象可以获取 WebApplicationContext 对象,然后通过它获取需要的类实例: `import org.springframework.web....
Flex作为一款强大的富客户端开发工具,而Spring则是Java领域内最流行的后端开发框架之一。本文将详细介绍如何通过Flex与Spring进行整合,从而实现前端Flex应用与后端基于Spring的三层架构服务之间的高效通信。 ####...
同时,Spring还提供了一个客户端工具WebApplicationContextUtils供使用者获得应用上下文对象。 因此,我们只需要在web.xml中配置ContextLoaderListener监听器,并使用WebApplicationContextUtils获得应用上下文对象...
本篇将详细讲解如何在JSP中通过Spring的WebApplicationContextUtils工具类获取Spring注入的对象。 首先,我们要明确Spring的依赖注入机制。在Spring框架中,我们可以在XML配置文件或基于注解的方式下定义bean及其...
3. **获取BeanFactory**:在Action的execute方法中,通过`WebApplicationContextUtils`工具类获取ServletContext中的BeanFactory。 4. **获取业务逻辑对象**:从BeanFactory中根据Bean ID获取对应的业务逻辑对象,...
对于如何在Struts中使用Spring注入的Bean,可以通过覆盖`Action`类的`setServlet`方法,利用`WebApplicationContextUtils`从Servlet上下文中获取Spring的应用上下文,然后从中获取并注入所需的Bean。例如: ```java...
最后,与Hibernate的整合开发将涵盖Spring的Hibernate支持,包括SessionFactory的配置、数据源的设置,以及如何通过HibernateTemplate或HibernateDaoSupport类简化DAO层的开发。这部分内容有助于理解如何在Spring ...
如果`ShipOrderRecipientImpl`需要依赖`ApplicationContext`,它可以通过依赖注入的方式获取,或者通过静态工具类(如`MyApplicationContextUtil.java`中可能定义的)来获取。 4. 文件`MyApplicationContextUtil....