`
爱像天空
  • 浏览: 205841 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Struts2如何使用Spring插件完成整合

    博客分类:
  • SSH
阅读更多
Struts2与Spring的整合,对于程序员很有利,他能使程序更加简单,分层明细。下面小编和大家分享Struts2使用Spring插件完成整合。

    借助于Spring插件,我们可以非常简单地完成Spring和Struts2的整合,这种整合包括让Action自动装配Spring容器中的Bean,以及让Spring管理应用中的Action两种方式,不管采用哪种方式,完成Struts2和Spring的整合都是非常简单的,而且差别不大.



    整合spring前的准备工作



    为了在Web应用中使用Spring框架,当然需要将Spring框架的JAR文件复制到Web应用的WEB-INF\lib\路径下,通常建议复制dest路径下的spring.jar文件,这个文件是spring框架最全面的类库,使用该文件比使用分模块的类库更加简单.此外,spring框架还依赖于commons-logging.jar文件,因此还需要将该文件复制到Web应用的WEB-INF\lib\路径下,为了完成spring和Struts2的整合,还必须安装Struts2的Spring插件,只需要将Struts2-spring-plugin-XXX.jar文件复制到Web应用的WEB-INF\lib\路径下,一旦在Web应用中安装了Spring插件,即可充分利用该

插件提供的功能:

    1,可以通过Spring来创建所有的Action,Interceptor和Result.

    2,可以在Struts创建了某个对象(Action实例)之后,Spring将其依赖的组件自动注入该对象

    3,提供了两个拦截器来完成自动装配.



    此外,在使用Spring容器之前,必须先完成Spring容器的初始化,为了完成Spring容器的初始化,Struts2利用了Spring所提供的两种初始化方

式.



    1,利用ContextLoaderListener

    Spring提供一个ContextLoaderListener对象,该类可以作为Web应用的Listener使用,它会在Web应用启动时自动查找WEB-INF/下的applicationContext.xml配置文件(Spring的配置文件),并且根据该文件来创建Spring容器.因此,如果Web应用中只有一个Spring配置文件,并且文件名为"applicationContext.xml",并将该文件放在Web应用的WEB-INF/路径下,则只需在web.xml文件中增加如下一段即可:

    <!-- 根据默认配置文件来初始化Spring容器 -->

    <listener>

        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

    </listener>

    如果有多个配置文件需要载入,则应该使用<context-param>元素来确定配置文件的文件名.如下面的web.xml的内容:

    <?xml version="1.0" encoding="UTF-8"?>

    <web-app version="2.4" 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">



<!-- 定义spring 配置文件 -->

<context-param>

    <param-name>contextConfigLocation</param-name>

    <param-value>

     /WEB-INF/applicationContext.xml,

     /WEB-INF/classes/conf/spring/applicationContext-*.xml

   </param-value>

    </context-param>

    <!-- 根据默认配置文件来初始化Spring容器 -->

    <listener>

    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

    </listener>

    </web-app>

    如果没有contextConfigLocation制定配置文件,Spring会自动查找WEB-INF目录下的applicationContext.xml配置文件.



    2,采用load-on-startup Servlet创建ApplicationContext

    利用Listener创建Spring容器很简单,但有一个明显的局限,因为Listener是Servlet2.3以后才开始出现的规范,这意味着在低版本的Servlet中只能利用Web应用中的load-on-startup的Servlet而不能利用Listener.这两者的作用是一样的.为了使用load-on-startup Servlet来创建Spring容器,Spring提供了一个特殊的Servlet类:ContextLoaderServlet,该Servlet在初始化时,会自动查找WEB-INF/下的"applicationContext.xml"文件,如果只有一个配置文件,并且名为"applicationContext.xml",则在web.xml文件中的配置如下:

    <servlet>

    <servlet-name>context</servlet-name>

    <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>

    <load-on-startup>1</load-on-startup>

    </servlet>

    该servlet仅用于提供后台服务,负责创建spring容器,无需响应客户端请求,因此无需配置servlet mapping.

    如果有多个配置文件,则一样使用<context-param>元素来确定多个配置文件,事实上,无论是ContextLoaderServlet还是ContextLoaderListener都是通过调用ContextLoader来创建spring容器的,如果Web应用中包含了多个spring配置文件,则在web.xml中的配置如下:

    <context-param>

    <param-name>contextConfigLocation</param-name>

    <param-value>

     /WEB-INF/config/applicationContext-resources.xml

     /WEB-INF/classes/applicationContext.xml

     /WEB-INF/config/applicationContext-*.xml    

   </param-value>

    </context-param>



    在Servlet规范中Listener总是比Servlet优先加载的,因此,采用ContextLoaderListener更好.



    为了让控制器Action访问Spring的业务逻辑组件,有两种策略:

    1,Spring管理控制器,并利用依赖注入为控制器注入业务逻辑组件

    2,控制器定位Spring工厂,也就是Spring的容器,从Spring容器中取得所需的业务逻辑组件.

    对于这两种方式,Struts2都提供了对应的整合实现.
分享到:
评论

相关推荐

    struts2与spring2的整合

    4. **Spring插件**:在Struts2中使用Spring插件(struts2-spring-plugin),这个插件能够帮助Struts2与Spring进行交互,自动将Action类实例化并注入依赖。 5. **Action类**:Action类需要实现Spring的`org.spring...

    struts2+spring+hibernate 整合的jar包

    4. **整合Struts2和Spring**:使用Struts2的Spring插件,将Spring管理的Bean注入到Struts2的Action中,通常通过`&lt;struts-plugin&gt;`标签进行配置。 5. **配置Struts2**:创建Struts2的配置文件(struts.xml),定义...

    struts2和spring和Hibernate整合的jar包

    5. **整合Struts2与Spring**:使用Spring-Struts2的插件,比如struts2-spring-plugin-*.jar,这样Action可以被Spring管理,实现依赖注入。在struts.xml中,通过`&lt;spring:bean&gt;`标签声明Action。 6. **处理冲突**:...

    Struts2整合Spring、JPA

    具体实现包括在Struts配置文件中声明Spring插件,并在Spring的bean配置中定义Action类。 ```xml &lt;!-- Struts2 配置 --&gt; &lt;constant name="struts.objectFactory" value="org.springframework.struts2....

    Struts2与Spring2框架整合实例

    3. **Struts2的插件机制**:Struts2提供了Spring插件,该插件负责连接Struts2和Spring,允许Struts2通过Spring获取Action实例。这需要在struts.xml配置文件中添加相应的配置。 4. **AOP代理**:Spring的AOP功能可以...

    struts2和spring3注解整合问题

    需在`struts.xml`中添加`&lt;constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory"/&gt;`来启用Spring插件,并且可能需要配置扫描注解的路径。 - **Action注解**:Action...

    struts2-spring-plugin-2.3.4.jar

    Struts2-Spring-Plugin-2.3.4.jar 是一个专门为 Struts 2 框架和 Spring 框架整合而设计的插件,主要用于处理 Struts 2 和 Spring 之间的集成问题。在Java Web开发中,这两个框架经常一起使用,Spring 提供了依赖...

    整合struts2和spring

    3. **配置Struts2**:在Struts2的配置文件(struts.xml)中,需要声明Spring插件,告诉Struts2使用Spring来管理Action实例。这样,每次请求时,Struts2会从Spring容器中获取Action实例,而不是使用默认的实例化方式...

    struts2+spring+hibernate整合步骤

    5. **整合Struts2和Spring**:在struts.xml中配置Struts2-Spring插件,使Action类成为Spring的Bean。 6. **整合Spring和Hibernate**:在Spring配置文件中配置SessionFactory,注入Hibernate的相关配置。 7. **测试...

    struts2整合spring实现拦截器

    在Struts2的配置文件(struts.xml)中,我们需要设置Struts2使用Spring插件,并指定Spring的配置文件位置: ```xml &lt;constant name="struts.objectFactory" value="org.springframework.web.struts2....

    Struts2与Spring之间的整合方法与原理

    - **添加依赖**:首先,需要将Struts2的Spring插件包(struts2-spring-plugin-x-x-x.jar)和Spring的核心库(spring.jar)以及共同依赖的commons-logging.jar放入WEB-INF/lib目录。 - **配置Struts2**:接着,通过...

    Struts2+Spring+Hibernate整合

    5. **整合Struts2和Spring**:使用Spring插件(如`struts2-spring-plugin-*.jar`),使Struts2的动作类可以被Spring管理,实现依赖注入。 6. **整合Spring和Hibernate**:通过Spring的SessionFactory Bean,将...

    struts2+spring+hibernate整合实例

    以上是对"struts2+spring+hibernate整合实例"的详细解释,整合这三大框架能够构建出功能强大的企业级Web应用,但同时也需要开发者具备扎实的Java基础和良好的架构设计能力。在实际项目中,应根据需求选择最合适的...

    Struts2,spring,Hibernate整合用到的jar架包

    在整合Struts2、Spring和Hibernate时,我们需要一系列的jar包来支持它们的运行。这些jar包涵盖了框架的核心库、依赖的第三方库以及可能需要的适配器等。以下是可能出现的一些关键jar包及其作用: 1. **Struts2框架*...

    struts2、spring、ibatis整合

    2. **配置Spring**:引入Spring的核心库,创建ApplicationContext,配置Bean、DataSource、TransactionManager等,通过Struts2的插件将Spring的IoC容器集成到Struts2中。 3. **配置iBatis**:添加iBatis库,配置...

    struts2和spring整合包

    整合后的应用能够充分利用Spring的DI和AOP能力,同时保持Struts2的MVC结构和插件生态。这种整合方式提高了代码的可测试性,降低了组件之间的耦合,使得开发者可以更加专注于业务逻辑的实现。 在提供的压缩包中,...

    Spring与Struts2整合

    引入Struts2的Spring插件,该插件使得Spring管理的Action类可以在Struts2中直接使用。在struts.xml配置文件中启用该插件。 4. **Action类的配置** 创建Spring管理的Action类,通常需要实现`...

    Struts 2 整合Spring

    - 解压插件JAR文件后,可以看到其中包含了 `struts-plugin.xml` 配置文件,此文件定义了Struts 2 使用 Spring 的方式。 - 在 `struts-plugin.xml` 文件中,通过 `&lt;bean&gt;` 元素配置 Spring 作为 Struts 2 的 ...

Global site tag (gtag.js) - Google Analytics