zoukankan      html  css  js  c++  java
  • Spring3.2+mybatis3.2+Struts2.3整合配置文件大全

    0.配置文件目录

    1.Spring配置

     applicationContext-dao.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">
    
        <!-- 0.连接池属性设置读取指定的properties文件 -->
        <context:property-placeholder location="classpath:db.properties" />
    
        <!-- 1.将连接池放入spring容器 -->
        <bean name="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="jdbcUrl" value="${jdbc.url}"></property>
            <property name="driverClass" value="${jdbc.driver}"></property>
            <property name="user" value="${jdbc.username}"></property>
            <property name="password" value="${jdbc.password}"></property>
        </bean>
    
    
    
        <!--2. 配置 Mybatis的会话工厂 -->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <!-- 数据源 -->
            <property name="dataSource" ref="dataSource" />
            <!-- 配置Mybatis的核心 配置文件所在位置 -->
            <property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml" />
        </bean>
    
    
    
        <!-- 3.1 mapper代理配置方法一 这种方法需要大量重复的配置代理对象 MapperFactoryBean:根绝mapper接口生成代理对象 
            <bean id="selectUser" class="org.mybatis.spring.mapper.MapperFactoryBean"> 
            <property name="mapperInterface" value="cn.qlq.core.dao.SelectUser"></property> 
            <property name="sqlSessionFactory" ref="sqlSessionFactory"></property> </bean> -->
    
    
    
    
        <!-- 3.2通过MapperScannerConfigurer扫描进行批量生成代理对象 遵循规范:mapper.java和mapper.xml名字一样且在同一个目录下 
            自动扫描出来的代理对象的id为mapper类类名(首字母小写) -->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <!-- 指定扫描的包名,如果有多个,用半角逗号分隔 -->
            <property name="basePackage" value="cn.xm.exam.mapper"></property>
            <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
        </bean>
    
    
        <!-- 4.配置事务管理器 -->
        <!-- 事务核心管理器,封装了事务操作,依赖于连接池 -->
        <bean name="transactionManager"
            class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource"></property>
        </bean>
    
        <!-- 5.开启注解管理aop事务 -->
        <tx:annotation-driven />
    
    
    
        <!-- 事务模板对象,依赖于事务核心管理器 -->
        <bean name="transactionTemplate"
            class="org.springframework.transaction.support.TransactionTemplate">
            <property name="transactionManager" ref="transactionManager"></property>
        </bean>
    
        <!-- ················开始使用XML管理事务························ -->
        <!-- 配置事务通知(无论哪种方式都要用到事务的核心管理器) -->
        <tx:advice transaction-manager="transactionManager" id="firstTx">
            <tx:attributes>
                <!--以方法为单位,指定方法应用事务什么属性 isolation:隔离级别 read-only:只读属性 propagation:传播行为 -->
                <!-- 企业中运用通配符命名规则。两套增删改查(8种) -->
                <tx:method name="save*" isolation="DEFAULT" read-only="false"
                    propagation="REQUIRED" />
                <tx:method name="add*" isolation="DEFAULT" read-only="false"
                    propagation="REQUIRED" />
                <tx:method name="delete*" isolation="DEFAULT" read-only="false"
                    propagation="REQUIRED" />
                <tx:method name="remove*" isolation="DEFAULT" read-only="false"
                    propagation="REQUIRED" />
                <tx:method name="update*" isolation="DEFAULT" read-only="false"
                    propagation="REQUIRED" />
                <tx:method name="modify*" isolation="DEFAULT" read-only="false"
                    propagation="REQUIRED" />
                <tx:method name="get*" isolation="DEFAULT" read-only="true"
                    propagation="REQUIRED" />
                <tx:method name="find*" isolation="DEFAULT" read-only="true"
                    propagation="REQUIRED" />
            </tx:attributes>
        </tx:advice>
    
        <!-- 配置织入 -->
        <aop:config>
            <!-- 配置切点表达式 -->
            
            <aop:pointcut expression="execution(* cn.xm.exam.service.impl.*.*ServiceImpl.*(..))"
                id="texPc" />
            <!-- 配置切面:切点+通知 advice-ref:通知名称 pointcut-ref:切点名称 -->
            <aop:advisor advice-ref="firstTx" pointcut-ref="texPc" />
        </aop:config>
        
        <aop:config>
            <!-- 配置切点表达式 -->
            <aop:pointcut expression="execution(* cn.xm.exam.service.impl.*.*.*ServiceImpl.*(..))"
                id="secondPc" />
            <!-- 配置切面:切点+通知 advice-ref:通知名称 pointcut-ref:切点名称 -->
            <aop:advisor advice-ref="firstTx" pointcut-ref="secondPc" />
        </aop:config>
    </beans>

    applicationContext-service.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">
    
        <!-- 4.开启组件自动扫描,也就是启用注解。前提是导入spring-context-3.2.xsd约束和引入新的命名空间 -->
        <context:component-scan base-package="cn.xm.exam.service"></context:component-scan>
    
    </beans>

     applicationContext-action.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">
        <!-- 与struts2整合的配置 -->
        <!-- 扫描Action基本包 -->
        <context:component-scan base-package="cn.xm.exam.action"></context:component-scan>
    
    
    
    </beans>

     2.Struts配置

    struts.xml  (主配置文件)

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
    
    <struts>
        <constant name="struts.i18n.encoding" value="utf-8"></constant>
        <constant name="devMode" value="true"></constant>
        <constant name="struts.enable.DynamicMethodInvocation" value="true" />
        <constant name="struts.action.extension" value="action,do" />
        <constant name="struts.objectFactory" value="spring"></constant>
    
    
    
        <!-- leilong -->
        <include file="struts/question.xml"></include>
    
    
        <!-- 乔利强引入的 -->
        <include file="struts/ExamPaper.xml"></include>
        <include file="struts/Exam.xml"></include>
        <include file="struts/Haul.xml"></include>
    
    
    
    </struts>

    Exam.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
    
    <struts>
        <package name="exam" namespace="/" extends="json-default,struts-default">
            <!-- 全局结果集,将response转换为json传到前台 -->
            <global-results>
                <result name="success" type="json">
                    <param name="root">response</param>
                </result>
            </global-results>
    
            <!-- 添加考试 -->
            <action name="exam_*" class="addExamAction" method="{1}"></action>
            <!-- 查询考试 -->
            <action name="findExam_*" class="findExamAction" method="{1}"></action>
            <!--删除考试 -->
            <action name="deleteExam" class="deleteExamAction"></action>
            <!--修改考试 -->
            <action name="UpdateExam_*" class="updateExamAction" method="{1}">
                <!-- 将信息带到修改界面 (页面跳转的方式) -->
                <result name="findExam">/view/examParper/exam/modifyExam.jsp</result>
                <!-- 修改考试(ajax+json方式) -->
            </action>
    
            <!-- 导出参考人员信息 -->
            <action name="exportExamEmployees" class="extExamEmployeesAction">
                <result type="stream">
                    <!-- 其他的参数在类中设置或者使用默认 -->
                    <param name="contentType">application/octet-stream</param>
                    <param name="inputName">inputStream</param>
                    <param name="contentDisposition">attachment;filename="${downloadFileName}"</param>
                    <param name="bufferSize">8192</param>
                </result>
            </action>
            <!-- 导出试卷答案信息 -->
            <action name="extPaperAnswer" class="extPaperAnswerAction">
                <result type="stream">
                    <!-- 其他的参数在类中设置或者使用默认 -->
                    <param name="contentType">application/octet-stream</param>
                    <param name="inputName">inputStream</param>
                    <param name="contentDisposition">attachment;filename="${downloadFileName}"</param>
                    <param name="bufferSize">8192</param>
                </result>
            </action>
            <!-- 导出试卷信息 -->
            <action name="extPaper" class="extExamPaperAction">
                <result type="stream">
                    <!-- 其他的参数在类中设置或者使用默认 -->
                    <param name="contentType">application/octet-stream</param>
                    <param name="inputName">inputStream</param>
                    <param name="contentDisposition">attachment;filename="${downloadFileName}"</param>
                    <param name="bufferSize">8192</param>
                </result>
            </action>
    
    
    
    
        </package>
    </struts>

    3.mybatis配置

    SqlMapConfig.xml   (主配置)

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
    
        <!-- 只需要定义个别名,这个应该有 -->
        <typeAliases>
            <package name="cn.xm.exam.bean.common" />
            <package name="cn.xm.exam.bean.employee" />
            <package name="cn.xm.exam.bean.employee.in" />
            <package name="cn.xm.exam.bean.employee.out" />
            <package name="cn.xm.exam.bean.exam" />
            <package name="cn.xm.exam.bean.grade" />
            <package name="cn.xm.exam.bean.question" />
            <package name="cn.xm.exam.bean.system" />
            <package name="cn.xm.exam.bean.trainContent" />
        </typeAliases>
    </configuration>

    mapper映射配置:(要与接口放在同一目录,且名字一样)

    EmployeeOutCustomMapper.xml   
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
    <mapper namespace="cn.xm.exam.mapper.employee.out.custom.EmployeeOutCustomMapper">
    
    
        <!-- S qlq -->
        <!-- S 查询外部参考人员 -->
        <select id="getExamEmployeeOuts" resultType="cn.xm.exam.vo.exam.ExamEmployeeOutQueryVo"
            parameterType="hashmap">
            SELECT
            e.employeeId,
            e.idcode,
            e.name,
            e.sex,
            e.minusNum,
            e.trainStatus,
            u.name AS unitname
            FROM employee_out e,
            unit u
            <where>
                <include refid="getExamEmployeeOuts_where"></include>
            </where>
            ORDER BY u.name
        </select>
        <sql id="getExamEmployeeOuts_where">
            <!-- 根据部门名称查询部门ID -->
            <if test="1==1">
                and e.unitId = u.unitId
            </if>
            <if test="unitNames !=null">
                and e.unitId IN(SELECT
                unitId
                FROM unit
                WHERE unit.name IN
                <foreach collection="unitNames" item="unitName" separator=","
                    open="(" close=")">
                    #{unitName}
                </foreach>
                )
            </if>
            <if test="sex!=null">
                and e.sex=#{sex}
            </if>
            <if test="idCode!=null">
                and e.idCode=#{idCode}
            </if>
            <if test="trainStatus!=null">
                and e.trainStatus=#{trainStatus}
            </if>
            <if test="name!=null">
                and e.name like '%${name}%'
            </if>
            <if test="mixMinus!=null">
                and e.minusNum>#{mixMinus}
            </if>
            <if test="maxMinus!=null">
                and e.minusNum&lt;#{maxMinus}
            </if>
            <!-- 如果选择进入黑名单扣分大于12 -->
            <if test="isBlack!=null">
                and e.minusNum>12
            </if>
        </sql>
        <!-- E 查询外部参考人员 -->
    
        <!-- E qlq -->
    
    </mapper>

     4.web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://java.sun.com/xml/ns/javaee"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
        id="WebApp_ID" version="3.0">
        <display-name>xm</display-name>
        <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
    
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring/applicationContext-*.xml</param-value>
        </context-param>
    
    
         <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>
    </web-app>
  • 相关阅读:
    strace排除Linux服务器故障
    详解如何在linuxmint上用源码包安装nodejs
    linux 安装nodejs
    使用Vue实现购物车功能
    Vue项目中使用better-scroll
    vue项目中使用axios发送ajax
    在VUE的项目中使用字体图标以及Stylus
    Vue在使用组件中的一些需要记住的点
    Vue简易动画实现和使用animate.css库
    使用Vue.js进行数据绑定以及父子组件传值
  • 原文地址:https://www.cnblogs.com/qlqwjy/p/7814067.html
Copyright © 2011-2022 走看看