zoukankan      html  css  js  c++  java
  • 转载:struts2和spring的结合原理(精品)

    转载网址:http://blog.sina.com.cn/s/blog_683278bc0101236z.html

    Ioc将所有的对象之间的关系转移到了xml配置文件中来。 在TopLogic中声明存储SecondLogic的属性

    public class TopLogic{

        private SecondLogic logic ;


        public void setSecondLogic(SecondLogic logic) {
           this.logic = logic;
        }

        public TopLogic() {

        }  

        public topMethod() {

           loggic.someMethod();

        }

     

    }


    声明变量之间的关系:

    <beans>
        <bean id="secondLogic" class="com.jpleasure.teamware.logic.SecondLogic">
           <property name="XXX" value = "11111"/>
           <property name="YYY" value = "22222"/>
        </bean>
        <bean id="topLogic" class="com.jpleasure.teamware.logic.TopLogic">
           <property name="secondLogic" ref = "secondLogic"/>
        </bean>
    </beans>

    当我们从Spring IOC容器中取得topLogic的时候,其中的secondLogic属性自动的通过
    配置文件的配置得到了初始化。

    1.为什么Strut2需要使用SpringFramework
    在Struts2中Action是我们扩展的点,我们使用Action处理用户提交的请求,向用户展现数据。
    为了更好的组织代码的结构,我们一般情况下使用三层的构架:
    Action → Logic → Dao 这样如果我们手动的管理这些对象之间的关系,以方便非常的繁琐,另外也很不利于管理 变更,所以我们更倾向于使用Spring等类似的IOC框架类管理。
    2.如何将Springframework和Struts2结合起来 回想第一章,我们指导在Struts2中每一个对象都是靠ObjectFactory创建的,而Springframework
    就是用来管理对象创佳的,我们只需要将ObjectFactory的对象创建方法改为Spring即可。

    1)在struts.properties或者struts.xml文件中将objectfactory的属性设置为spring方式:
        xml方式:
        <constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" />
        properties方式:
        struts.objectFactory=org.apache.struts2.spring.StrutsSpringObjectFactory
    2)当然还需要将需要的Jar文件放在WEB-INF/lib目录下
        这些文件包括:
        struts2-spring-plugin-2.0.9.jar
        spring.jar(为了省事,包含了所有的spring模块,实际项目中可以考虑使用具体的模块)
    3)剩余的就是Springframework的配置了
        第一,告诉Spring,对象间关系的配置在那里存放
        需要在web.xml文件中添加如下内容(注意顺序):
        这个Listener在应用程序启动的时候启动,用来读取配置文件。
        <listener>
            <listener-class>
                org.springframework.web.context.ContextLoaderListener
            </listener-class>
        </listener>

        这个参数配置了配置文件的路径,说明我们可以在classpath或者WEB-INF目录下
        防止名字满足applicationContext-*.xml格式你的文件。
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>
                /WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml
            </param-value>
        </context-param>

    4)如何让Struts2的Action和Springframework的bean管理起来?
        Struts2会根据struts.xml中配置的class名字在springframeowrk中找id相同的bean,如果找不到
        就按照普通的方式实例化Action类。
        例如:
        struts-todo.xml
            <action name="forward" method="forward"
                class="todo">
                <result name="insert">/todo/insert.jsp</result>
                <result name="update">/todo/insert.jsp</result>
                <result name="delete">/todo/insert.jsp</result>
            </action>
        applicationContext-todo.xml
            <bean id="todo" class="com.jpleasure.teamware.action.TodoAction"
                singleton="false">
            <property name="todoLogic" ref="todoLogic"></property>
            </bean>
        则class=“todo”的Action会使用com.jpleasure.teamware.action.TodoAction。

    基本程序结构:
    │  .classpath
    │  .project
    ├─src
    │  │  applicationContext-todo.xml
    │  │  struts-todo.xml
    │  │  struts.properties
    │  │  struts.xml
    │  │  teamware.properties
    │  │ 
    │  └─com
    │      └─jpleasure
    │          └─teamware
    │              ├─action
    │              ├─dao
    │              ├─fw
    │              ├─logic
    │              ├─util
    │              └─vo
    └─WebContent
        │  Index.html
        │  Index.jsp
        │ 
        ├─META-INF
        │      MANIFEST.MF
        │     
        ├─todo
        │      list.jsp
        │     
        └─WEB-INF
            │  web.xml
            │ 
            └─lib
                    commons-logging-1.0.4.jar
                    freemarker-2.3.8.jar
                    ognl-2.6.11.jar
                    spring.jar
                    struts2-core-2.0.9.jar
                    struts2-spring-plugin-2.0.9.jar
                    xwork-2.0.4.jar

  • 相关阅读:
    JAVA课程设计+五子棋(团队博客)
    201521123049 《JAVA程序设计》 第14周学习总结
    201521123049 《JAVA程序设计》 第13周学习总结
    201521123049 《JAVA程序设计》 第12周学习总结
    网络15软工个人作业5——软件工程总结1
    个人作业4--alpha阶段个人总结
    软件工程 个人作业3 案例分析
    软件工程网络15结对编程作业
    软件工程网络15个人阅读作业2
    软件工程网络15个人阅读作业1
  • 原文地址:https://www.cnblogs.com/lraa/p/3544475.html
Copyright © 2011-2022 走看看