当今最流行的技术无非就是:SSH (Struts+Spring+Hibernatge),Struts与Spring集成的方式一般是通过PlugIn加载Spring.用这种方式后, 当我们需要Spring上下文时无法获取,为了解决这个问题,可以在web.xml中加入Spring的监听器: <listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> 而Spring与Struts的集成仍然用PlugIn的方式,由此可以在Servlet环境中获取Spring上下文.
ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(this.getServletConfig().getServletContext());
Spring中ApplicationContext加载机制。
加载器目前有两种选择:ContextLoaderListener和ContextLoaderServlet。
这两者在功能上完全等同,只是一个是基于Servlet2.3版本中新引入的Listener接口实现,而另一个基于Servlet接口实现。开发中可根据目标Web容器的实际情况进行选择。
配置非常简单,在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引用。
如:ApplicationContext ctx=WebApplicationContextUtils.getWebApplicationContext();
LoginAction action=(LoginAction)ctx.getBean("action");
分享到:
相关推荐
这种方式允许你集中管理所有的Spring上下文文件,对于使用如StrutsTestCase这样的测试工具尤其有用。因为StrutsTestCase的MockStrutsTestCase不会在启动时初始化监听器,所以将所有上下文文件放置在插件中是一种变通...
- `spring-context.jar`: 提供了上下文相关的服务,如事件、国际化、资源访问以及AOP。 - `spring-web.jar`: 提供了处理HTTP请求和响应的工具,用于Web应用。 - `spring-webmvc.jar`: Spring MVC的核心库,包含...
标题中的"Spring集成struts以及hibernate jar包"指的是在Java Web开发中,将Spring框架与Struts2和Hibernate框架进行整合的过程。这通常是为了构建一个完整的MVC(Model-View-Controller)架构,其中Spring负责依赖...
前者处理请求,后者初始化Spring应用上下文。 4. **Struts2-Spring插件**:为了使Struts2能与Spring协同工作,需要引入Struts2的Spring插件。该插件允许Struts2的动作类(Action)作为Spring的bean来管理,从而利用...
- **ActionServlet配置**:在`web.xml`中配置`ActionServlet`,并添加Spring的`ContextLoaderListener`,用于初始化Spring上下文。 - **Action类改造**:将Action类变为Spring的管理Bean,通常标记为`prototype`...
**集成方案一:继承知晓Spring上下文的Action基类** 在Spring-Struts的集成中,一种常见方法是通过继承Spring提供的`ActionSupport`基类。`ActionSupport`是`Action`的抽象实现,它包含了对Spring应用上下文的访问...
2. **Spring作为Struts2的Action上下文**:在Struts2中,Action是处理请求的核心组件。通过Spring管理Action,我们可以利用Spring容器初始化Action,这样Action的实例化和依赖关系的建立都由Spring负责。 3. **配置...
在实际应用中,第一种和第二种方案通常用于初始化 Spring 容器,而第三种方案则更深入地将 Spring 的功能集成到 Struts 请求处理流程中。然而,使用 `ActionSupport` 类(方法一)会使得 Struts Action 与 Spring ...
为了使Struts能够识别到Spring的上下文,我们需要在`struts-config.xml`中配置`ContextLoaderPlugIn`插件,并指定Spring配置文件的位置。 ```xml <plug-in className="org.springframework.web.struts....
通常,我们会在web.xml中定义一个`ContextLoaderListener`来初始化Spring应用上下文。 3. **整合Struts2-Spring插件** 引入Struts2的Spring插件,该插件使得Spring管理的Action类可以在Struts2中直接使用。在...
1. **Spring配置**:首先,我们需要配置Spring的核心上下文(如`applicationContext.xml`),声明Bean定义并管理依赖。这包括配置数据源、事务管理器、以及Struts2和JPA的相关组件。例如,对于JPA,我们可能需要配置...
整合过程中,Spring通常作为全局的上下文容器,管理Struts的Action和Hibernate的SessionFactory。Struts负责处理HTTP请求,调用Spring管理的业务服务,这些服务又依赖于Hibernate提供的DAO(数据访问对象)来操作...
6. **启动Spring上下文**:在Web应用的初始化阶段,需要启动Spring容器,使Struts2能够访问其中的Bean。这通常在`web.xml`中配置。 集成Struts2和Spring后,我们可以享受到Spring提供的诸多优点,比如: - **依赖...
2. **配置Spring**:引入Spring的JAR包,包括Spring的核心、AOP、上下文、ORM等模块。在applicationContext.xml中配置bean,包括DAO、Service层组件,以及数据源、事务管理器等。 3. **配置Hibernate**:添加...
首先,在`struts-config.xml`中配置`ContextLoaderPlugIn`插件,加载Spring的上下文配置文件,例如: ```xml <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> ``` 然后,创建...
- spring-context.jar:提供了应用程序上下文,是Spring框架的基础。 - spring-core.jar:核心工具类,包括资源加载、反射、转换服务等。 - spring-aop.jar:实现了面向切面编程的功能。 - spring-expression....
其中,核心容器是Spring的基石,它包含Bean工厂(Bean Factory)和应用上下文(ApplicationContext),负责管理应用对象的生命周期和依赖关系。Spring JDBC模块则提供了数据库访问的抽象层,简化了数据库操作。 ...
- **context-param**:配置应用程序上下文参数,包括`webAppRootKey`和`log4jConfigLocation`,后者用于指定log4j配置文件的位置。 - **context-param**:配置Spring配置文件的位置,如`/WEB-INF/spring/...
1. **配置Spring**:首先,我们需要配置Spring的上下文,包括定义Bean、配置数据源、配置事务管理器以及Struts2和iBatis的插件。 2. **配置Struts2**:接着,设置Struts2的配置文件,定义Action类、结果类型和拦截...