zoukankan      html  css  js  c++  java
  • java 的 struts2 Spring Hibernate 三大框架的整合

    原理就不说了,直接上配置文件及代码,用来备用

    首先,将三大框架所需要的jar包导入项目中

    导入  struts2-spring-plugin-2.3.3.jar包  此包的作用是作为struts2 与spring 的桥梁

    web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" 
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
      <display-name></display-name>    
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
      <!-- 配置struts2 -->
      <filter>
          <filter-name>struts2</filter-name>
          <filter-class>
              org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
          </filter-class>
      </filter>
      <filter-mapping>
          <filter-name>struts2</filter-name>
          <url-pattern>/*</url-pattern>
      </filter-mapping>
      
      <!-- 设置监听器及路径 -->
      <listener>
          <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
      <!-- 启动时,配置文件的路径 
              classpath:编译后配置文件所放置的位置
      -->
        <context-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:applicationContext.xml</param-value>
      </context-param>
      
      </web-app>

    创建在src 中创建hibernate 配置文件applicationContext.xml

    applicationContext.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans
        xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:p="http://www.springframework.org/schema/p"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
         http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
         http://www.springframework.org/schema/tx 
         http://www.springframework.org/schema/tx/spring-tx.xsd
         http://www.springframework.org/schema/aop
         http://www.springframework.org/schema/aop/spring-aop-3.1.xsd"     >
    
        <!-- 数据源 dataSource -->
        <bean id="dataSource"
            class="org.apache.commons.dbcp.BasicDataSource">
            <property name="driverClassName"
                value="com.mysql.jdbc.Driver">
            </property>
            <property name="url" value="jdbc:mysql://localhost:3306/test"></property>
            <property name="username" value="root"></property>
            <property name="password" value="root"></property>
        </bean>
        
        <!-- sessionFactory -->
        <bean id="sessionFactory"
            class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
            <property name="dataSource">
                <ref bean="dataSource" />
            </property>
            <property name="hibernateProperties">
                <props>
                    <prop key="hibernate.dialect">
                        org.hibernate.dialect.MySQLDialect
                    </prop>
                </props>
            </property>
        </bean>
        
        <!-- 事务管理器     -->
        <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
            <property name="sessionFactory">
                <ref bean="sessionFactory"/>
            </property>
        </bean>
        
        <!-- 事务的声明        
            read-only
                       true   只读事务
                       false  读写事务
         -->
        
        <tx:advice  transaction-manager="transactionManager" id="tx">
            <tx:attributes>    
                <!-- 事务应用方法范围 -->
                <tx:method name="save*" isolation="DEFAULT" propagation="REQUIRED"
                  read-only="false"/>
            </tx:attributes>
        </tx:advice>
        
        <!-- 事务切面  -->
        <aop:config>
            <aop:pointcut 
                expression="execution(* *.*.*(..))" 
                id="perform"/>
            <aop:advisor advice-ref="tx" pointcut-ref="perform"/>
        </aop:config>
        
        
    </beans>

    在sr下面创建  struts.xml配置文件

    struts.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
            "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
            "http://struts.apache.org/dtds/struts-2.0.dtd">
    
    <struts>
        <constant name="struts.ui.theme" value="simple"></constant>
        <constant name="struts.devMode" value="true"/>
        <include file="struts/struts-person.xml"></include>
        <!-- 配置的例子 -->
        <package name="struts-global" namespace="/" extends="struts-default">
            <global-results>
                <result name="errHandler" type="chain">
                    <param name="actionName">errorProcessor</param>
                </result>
            </global-results>
            <global-exception-mappings>
                <exception-mapping exception="java.lang.Exception"
                    result="errHandler" />
            </global-exception-mappings>
    
            <action name="errorProcessor" class="com.itheima12.s2sh.error.ErrorProcessor">
                <result name="error">error.jsp</result>
            </action>
        </package>
    </struts>

    验证:验证struts2 与spring 是否整合

    创建实体类person

    package com.cong.domain;
    
    
    
    public class person {
        private Long id;
        private String name;
        public Long getId() {
            return id;
        }
        
        //set and get  ...
        
        
    }

    创建Action 类

    package com.cong.action;
    import com.cong.domain.person;
    import com.opensymphony.xwork2.ActionSupport;
    
    public class personAction extends ActionSupport {
        private person persons;
    
        public void showPerson(){
            System.out.println("名字是:"+persons.getName());
        }
        // set and get ...
    }

    在applicationContext.xml中添加配置如下

    <!-- domain -->
        <bean id="Person" class="com.cong.domain.person" />
        <!-- action -->
        <bean id="PersonAction" class="com.cong.action.personAction">
            <property name="persons" ref="Person"></property>
        </bean>

    在struts.xml中添加配置如下:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
    <struts>
        <constant name="struts.ui.theme" value="simple"></constant>
        <constant name="struts.devMode" value="true"/>
        <include file="struts/struts-person.xml"></include>
        <!-- 配置的例子 -->
        <package name="struts-global" namespace="/" extends="struts-default">
            <action name="perAction" class="PersonAction" method="showPerson">
                <result></result>
            </action>
        </package>
    </struts>    

    接下来,直接运行项目,在浏览器中输入地址  http://[地址]:8080/[项目名]/perAction.action

    如有运行showPerson 方法,输出名字,则表示spring 与 struts 整合完成

    验证spring 与hibernate 是否整合

  • 相关阅读:
    Visifire正式版(v1.1)发布
    [转]PSP机能强大!已能模拟运行WINDOWS系统?
    在Silverlight+WCF中应用以角色为基础的安全模式(一)基础篇之角色为基础的安全模式简介 Virus
    C#的加密解密算法,包括Silverlight的MD5算法 Virus
    MMORPG programming in Silverlight Tutorial (10)Implement the sprite’s 2D animation (Part IV)
    Game Script: Rescue Bill Gates
    MMORPG programming in Silverlight Tutorial (9)KeyFrame Animation
    MMORPG programming in Silverlight Tutorial (5)Implement the sprite’s 2D animation (Part II)
    MMORPG programming in Silverlight Tutorial (7)Perfect animation
    MMORPG programming in Silverlight Tutorial (3)Animate the object (Part III)
  • 原文地址:https://www.cnblogs.com/chcong/p/6180191.html
Copyright © 2011-2022 走看看