zoukankan      html  css  js  c++  java
  • java web 之 struts2 与 sping 集成

    struts2 与 spring 集成,只需要 struts2-spring-plugin-xxx.jar 即可;这个 struts2 官方文档中已经说明:To enable Spring integration, simply include struts2-spring-plugin-x-x-x.jar in your application.

    可是为什么呢?打开 plugin 的 jar 包发现有个 struts-plugin.xml 文件;这就是 struts2 和 sping 集成只需有这个jar包就行的原因了。

    具体做法:

    1.  web.xml 配置监听(用spring配置各个bean对象):

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

    2.  applicationContext.xml 配置各个bean对象:

    <beans default-autowire="autodetect">
        <bean id="personManager" class="com.acme.PersonManager"/>
        ...
    </beans>

    3.  struts.xml 配置关联:

     3.1 正常情况下在struts.xml里为每个action指定具体类class,当使用了spring默认的对象工厂SpringObjectFactory后,由spring默认的自动装载来指定action类和类之间的依赖关系。(摘自struts.xml官方文档之pring plugin)

      3.2  把bean完全交给spring控制,以利用spring的aop等优势技术到你的bean上,可以将你的struts.xml里的class属性只想spring的配置文件applicationContext.xml里配置的bean的name属性上去

    struts.xml:

     <package name="secure" namespace="/secure" extends="default">
            <action name="bar" class="barClass">
                <result>bar.ftl</result>
            </action>
     </package>
    

    applicationContext.xml:

    <beans default-autowire="autodetect">
        <bean id="barClass" class="com.my.BarClass" singleton="false"/>
        ...
    </beans>

    另外:

    在struts-plugin.xml 里面有这么一段话:

    <bean type="com.opensymphony.xwork2.ObjectFactory" name="spring" class="org.apache.struts2.spring.StrutsSpringObjectFactory" />
        
        <!--  Make the Spring object factory the automatic default -->
        <constant name="struts.objectFactory" value="spring" />

    应该就是,当有超过一个对象工厂时,配置 struts.objectFactory 时:

    <struts>
      <constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" />
      ... 
    </struts>
    value 字段可以是“sping” 或者 是那个具体的类(org.apache.struts2.spring.StrutsSpringObjectFactory)的原因了吧。
  • 相关阅读:
    DPDK — 网卡初始化流程(Intel 82599 ixgbe 网卡驱动示例)
    leetcode 3. 无重复字符的最长子串
    20193120 实验四 Python综合实践
    hadoop常用的端口号
    Django学习笔记
    ORACLE EBS AP invoice 到付款的数据流
    EBS 系统标准职责定义MAP
    Advanced Pricing
    Oracle Advanced Pricing White Papers
    增加AP INVOICE 行&分配行
  • 原文地址:https://www.cnblogs.com/sin7/p/2876352.html
Copyright © 2011-2022 走看看