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 是否整合

  • 相关阅读:
    go反射实现实体映射
    golang的time包:秒、毫秒、纳秒时间戳输出
    在 Gin 框架中使用 JWT 认证
    docker安装redis
    docker安装mysql5.7
    Python Web实战:Python+Django+MySQL实现基于Web版的增删改查
    apache2.4配置weblogic12c集群(linux环境)
    小BUG大原理:重写WebMvcConfigurationSupport后SpringBoot自动配置失效
    Spring源码解析02:Spring IOC容器之XmlBeanFactory启动流程分析和源码解析
    Git进阶:常用命令和问题案例整理
  • 原文地址:https://www.cnblogs.com/chcong/p/6180191.html
Copyright © 2011-2022 走看看