Resources部分

 

--------------------------------

applicationContext-datasource.xml

 

<?xml version="1.0"encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/aop"
      xmlns:tx="http://www.springframework.org/schema/tx"xmlns:jdbc="http://www.springframework.org/schema/jdbc"
      xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"
      xsi:schemaLocation="
    http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.0.xsd
    http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.0.xsd
    http://www.springframework.org/schema/jdbchttp://www.springframework.org/schema/jdbc/spring-jdbc-4.0.xsd
    http://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-4.0.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
    http://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
 
   <!-- 加载配置文件-->
   <context:property-placeholderlocation="classpath:jdbc.properties"/>
   <!-- 扫描控制包 -->
   <context:component-scan base-package="com.vivebest.service"/>
 
   <!--   ***************以下是dataSource和 Mybatis配置******************  -->
   <!-- dataSource -->
   <!-- 主库数据源 -->
   <bean id="masterDataSource" class="com.alibaba.druid.pool.DruidDataSource"init-method="init"
         destroy-method="close">
       <!-- 基本属性 url、user、password -->
       <property name="driverClassName"value="${dataSource.slave.driverClassName}"/>
       <property name="url" value="${dataSource.slave.url}"/>
       <property name="username"value="${dataSource.slave.username}"/>
       <property name="password"value="${dataSource.slave.password}"/>
       <!-- 配置初始化大小、最小、最大 -->
       <property name="initialSize" value="1"/>
       <property name="minIdle" value="1"/>
       <property name="maxActive" value="20"/>
       <!-- 配置获取连接等待超时的时间 -->
       <property name="maxWait" value="60000"/>
       <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
       <property name="timeBetweenEvictionRunsMillis"value="60000"/>
       <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
       <property name="minEvictableIdleTimeMillis"value="300000"/>
       <!-- 校验语句 -->
       <property name="validationQuery" value="SELECT1"/>
        <propertyname="testWhileIdle" value="true"/>
       <property name="testOnBorrow" value="false"/>
       <property name="testOnReturn" value="false"/>
       <!-- 配置监控统计拦截的filters -->
       <property name="filters" value="stat"/>
   </bean>
 
    <!-- 从库数据源 -->
   <bean id="slaveDataSource"class="com.alibaba.druid.pool.DruidDataSource"init-method="init" destroy-method="close">
       <!-- 基本属性 url、user、password -->
       <property name="driverClassName"value="${dataSource.master.driverClassName}"/>
       <property name="url"value="${dataSource.master.url}"/>
       <property name="username"value="${dataSource.master.username}"/>
       <property name="password"value="${dataSource.master.password}"/>
       <!-- 配置初始化大小、最小、最大 -->
        <property name="initialSize"value="1"/>
       <property name="minIdle" value="1"/>
       <property name="maxActive" value="20"/>
       <!-- 配置获取连接等待超时的时间 -->
       <property name="maxWait" value="60000"/>
       <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
       <property name="timeBetweenEvictionRunsMillis"value="60000"/>
       <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
       <property name="minEvictableIdleTimeMillis"value="300000"/>
       <!-- 校验语句 -->
       <property name="validationQuery" value="SELECT1"/>
       <property name="testWhileIdle" value="true"/>
       <property name="testOnBorrow" value="false"/>
       <property name="testOnReturn" value="false"/>
       <!-- 配置监控统计拦截的filters -->
       <property name="filters" value="stat"/>
   </bean>
 
   <!-- 动态数据源 -->
   <bean id="dataSource"class="com.vivebest.util.DynamicDataSource">
       <property name="targetDataSources">
           <map key-type="java.lang.String">
                <!-- 可配置多个数据源-->
                <entryvalue-ref="masterDataSource"key="masterDataSource"></entry>
                <entryvalue-ref="slaveDataSource"key="slaveDataSource"></entry>
           </map>
       </property>
       <property name="defaultTargetDataSource" ref="masterDataSource"></property>
   </bean>
 
 
   <!-- define the SqlSessionFactory -->
   <bean id="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">
       <property name="dataSource" ref="dataSource"/>
       <property name="configLocation"value="classpath:mybatis-config.xml" />
       <!-- 要映射类的包路径 -->
       <!--  <propertyname="typeAliasesPackage" value="com.vivebest.erp.entity"/> -->
       <!-- 若无上条就需要有该配置 -->
       <property name="mapperLocations" value="classpath*:*Mapper.xml"></property>
       <!-- 当配置文件在其他目录时 -->
   </bean>
 
   <!-- scan for mappers and let them be autowired -->
   <!-- DAO接口所在包名,Spring会自动查找其下的类 -->
   <beanclass="org.mybatis.spring.mapper.MapperScannerConfigurer">
       <propertyname="basePackage" value="com.vivebest.dao"/>
       <property name="sqlSessionFactoryBeanName"value="sqlSessionFactory"/>
   </bean>
 
   <!-- 事务管理器 -->
   <bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
       <property name="dataSource" ref="dataSource"/>
   </bean>
 
   <!-- 启动注解事务 -->
   <tx:annotation-driventransaction-manager="transactionManager"/>
 
</beans>

 

--------------------------------

applicationContext-listener.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:context="http://www.springframework.org/schema/context"
      xsi:schemaLocation="
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-4.0.xsd
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
 
   <!-- 装载自定义bean -->
   <context:component-scan base-package="**.*"use-default-filters="false">
       <context:include-filter type="assignable"expression="com.vivebest.util.BaseInterface"></context:include-filter>
   </context:component-scan>
 
    <!--启动时初始化Spring上下文环境工具类 -->
   <bean id="springContextUtil"class="com.vivebest.util.SpringContextUtil"></bean>
 
   <!-- Spring容器初始化完成监听器 -->
   <bean class="com.vivebest.util.ApplicationContextListener"lazy-init="false"></bean>
 
</beans>

 

--------------------------------

jdbc.properties

 

#DB
dataSource.master.driverClassName=com.mysql.jdbc.Driver
dataSource.master.url=jdbc\:mysql\://127.0.0.1\:3306/zheng?useUnicode\=true&characterEncoding\=utf-8&autoReconnect\=true
dataSource.master.username = root
dataSource.master.password = root
 
dataSource.slave.driverClassName=com.mysql.jdbc.Driver
dataSource.slave.url=jdbc\:mysql\://127.0.0.1\:3306/zheng?useUnicode\=true&characterEncoding\=utf-8&autoReconnect\=true
dataSource.slave.username = root
dataSource.slave.password = root
 
dataSource.initialSize  =  2
dataSource.maxActive = 30
dataSource.maxIdle = 2
dataSource.minIdle = 2
dataSource.maxOpenPreparedStatements = 150
dataSource.validationQuery = SELECT 1 FROMDUAL
dataSource.testWhileIdle = true
dataSource.testOnBorrow = false
dataSource.testOnReturn = false
#\u914d\u7f6e\u95f4\u9694\u591a\u4e45\u624d\u8fdb\u884c\u4e00\u6b21\u68c0\u6d4b\uff0c\u68c0\u6d4b\u9700\u8981\u5173\u95ed\u7684\u7a7a\u95f2\u8fde\u63a5\uff0c\u5355\u4f4d\u662f\u6beb\u79d2
dataSource.timeBetweenEvictionRunsMillis =60000
#\u914d\u7f6e\u4e00\u4e2a\u8fde\u63a5\u5728\u6c60\u4e2d\u6700\u5c0f\u751f\u5b58\u7684\u65f6\u95f4\uff0c\u5355\u4f4d\u662f\u6beb\u79d2
dataSource.minEvictableIdleTimeMillis =300000
# \u6253\u5f00PSCache\uff0c\u5e76\u4e14\u6307\u5b9a\u6bcf\u4e2a\u8fde\u63a5\u4e0aPSCache\u7684\u5927\u5c0f
dataSource.poolPreparedStatements = true
dataSource.maxPoolPreparedStatementPerConnectionSize= 20
#\u914d\u7f6e\u76d1\u63a7\u7edf\u8ba1\u62e6\u622a\u7684filter
dataSource.filters = stat

 

--------------------------------

log4j.properties

 

#off/fatal/error/warn/info/debug/all
log4j.debug=false
log4j.rootLogger=info,stdout,log,errorlog
 
# Console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d[%t] %-5p [%c] - %m%n
 
### Log ###
log4j.appender.log =org.apache.log4j.DailyRollingFileAppender
log4j.appender.log.File =../logs/zheng-upms5-server.log
log4j.appender.log.Append = true
log4j.appender.log.Threshold = DEBUG
log4j.appender.log.DatePattern='.'yyyy-MM-dd
log4j.appender.log.layout =org.apache.log4j.PatternLayout
log4j.appender.log.layout.ConversionPattern= %-d{yyyy-MM-dd HH:mm:ss} [ %p ] [ %C{1}.java :%L(%M)]  %m%n
 
### Error ###
log4j.appender.errorlog =org.apache.log4j.DailyRollingFileAppender
log4j.appender.errorlog.File =../logs/zheng-upms5-server.error.log
log4j.appender.errorlog.Append = true
log4j.appender.errorlog.Threshold = ERROR
log4j.appender.errorlog.DatePattern='.'yyyy-MM-dd
log4j.appender.errorlog.layout =org.apache.log4j.PatternLayout
log4j.appender.errorlog.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [ %p ] [ %C{1}.java :%L(%M)] %m%n
 
#Spring logging configuration
log4j.category.org.springframework = warn
 
#Druid logging configuration
log4j.logger.druid.sql=warn,stdout,log,errorlog
log4j.logger.druid.sql.DataSource=warn,stdout,log,errorlog
log4j.logger.druid.sql.Connection=warn,stdout,log,errorlog
log4j.logger.druid.sql.Statement=warn,stdout,log,errorlog
log4j.logger.druid.sql.ResultSet=warn,stdout,log,errorlog
 
# MyBatis logging configuration
log4j.logger.com.vivebest.dao=debug

 

--------------------------------

mybatis-config.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>
 
         <!--全局配置 -->
         <settings>
                   <settingname="cacheEnabled" value="true" />
                   <settingname="lazyLoadingEnabled" value="true" />
                   <settingname="aggressiveLazyLoading" value="true" />
                   <settingname="multipleResultSetsEnabled" value="true" />
                   <settingname="useColumnLabel" value="true" />
                   <settingname="useGeneratedKeys" value="false" />
                   <settingname="autoMappingBehavior" value="PARTIAL" />
                   <settingname="defaultExecutorType" value="SIMPLE" />
                   <settingname="defaultStatementTimeout" value="25000" />
         </settings>
 
         <!--插件-->
         <plugins>
                   <!--分页插件 -->
                   <plugininterceptor="com.github.pagehelper.PageInterceptor">
                            <!--
                            分页插件会自动检测当前的数据库链接,自动选择合适的分页方式。你可以配置helperDialect属性来指定分页插件使用哪种方言。配置时,可以使用下面的缩写值:
                            oracle,mysql,mariadb,sqlite,hsqldb,postgresql,db2,sqlserver,informix,h2,sqlserver2012,derby
                            特别注意:使用SqlServer2012 数据库时,需要手动指定为 sqlserver2012,否则会使用 SqlServer2005 的方式进行分页
                            -->
                            <!--<propertyname="helperDialect" value="mysql"/>-->
                            <!--
                            默认值为 false,该参数对使用RowBounds 作为分页参数时有效。
                            当该参数设置为 true 时,会将 RowBounds中的 offset 参数当成 pageNum 使用,可以用页码和页面大小两个参数进行分页。
                            -->
                            <propertyname="offsetAsPageNum" value="false"/>
                            <!--
                            默认值为false,该参数对使用RowBounds 作为分页参数时有效。当该参数设置为true时,使用 RowBounds 分页会进行 count 查询。
                            -->
                            <propertyname="rowBoundsWithCount" value="true"/>
                            <!--
                            默认值为 false,当该参数设置为 true时,如果 pageSize=0 或者 RowBounds.limit = 0 就会查询出全部的结果(相当于没有执行分页查询,但是返回结果仍然是 Page 类型)。
                            -->
                            <propertyname="pageSizeZero" value="false"/>
                            <!--
                            分页合理化参数,默认值为false。当该参数设置为 true时,pageNum<=0 时会查询第一页, pageNum>pages(超过总数时),会查询最后一页。默认false 时,直接根据参数进行查询。
                            -->
                            <propertyname="reasonable" value="false"/>
                            <!--
                            为了支持startPage(Objectparams)方法,增加了该参数来配置参数映射,用于从对象中根据属性名取值,可以配置 pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默认值
                             默认值为pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero。
                            -->
                            <propertyname="params"value="pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero"/>
                            <!--
                            支持通过 Mapper 接口参数来传递分页参数,默认值false,分页插件会从查询方法的参数值中,自动根据上面 params 配置的字段中取值,查找到合适的值时就会自动分页。
                            使用方法可以参考测试代码中的 com.github.pagehelper.test.basic 包下的 ArgumentsMapTest 和ArgumentsObjTest。
                            -->
                            <propertyname="supportMethodsArguments" value="false"/>
                            <!--
                            默认值为 false。设置为 true 时,允许在运行时根据多数据源自动识别对应方言的分页 (不支持自动选择sqlserver2012,只能使用sqlserver)
                            -->
                            <propertyname="autoRuntimeDialect" value="true"/>
                            <!--
                            默认值为 true。当使用运行时动态数据源或没有设置 helperDialect 属性自动获取数据库类型时,会自动获取一个数据库连接,通过该属性来设置是否关闭获取的这个连接
                            默认true关闭,设置为 false 后,不会关闭获取的连接,这个参数的设置要根据自己选择的数据源来决定。
                            -->
                            <propertyname="closeConn" value="true"/>
                   </plugin>
         </plugins>
 
</configuration>

 

--------------------------------

spring-mvc.xml

 

<?xml version="1.0"encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"
      xmlns:mvc="http://www.springframework.org/schema/mvc"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:context="http://www.springframework.org/schema/context"
      xsi:schemaLocation="http://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd">
 
   <!-- DispatcherServlet Context: defines this servlet'srequest-processing infrastructure -->
 
   <!-- 扫描控制器包 -->
   <!-- @Service用于标注业务层组件、 @Controller用于标注控制层组件、@Repository用于标注数据访问组件,即DAO组件。而@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。-->
   <context:component-scanbase-package="com.vivebest.controller" />
 
   <!-- Enables the Spring MVC @Controller programming model -->
   <!-- 启动springmvc注解 -->
   <mvc:annotation-driven />
 
   <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射,解决@ResponseBody乱码问题  -->
   <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
       <property name="messageConverters">
           <list>
                <beanclass="org.springframework.http.converter.StringHttpMessageConverter">
                    <propertyname="supportedMediaTypes">
                        <list>
                           <value>text/html;charset=UTF-8</value>
                           <value>text/plain;charset=UTF-8</value>
                           <value>application/json;charset=UTF-8</value>
                        </list>
                    </property>
                </bean>
           </list>
       </property>
   </bean>
   <!--视图解析的配置-->
   <!-- Resolves views selected for rendering by @Controllers to .jspresources in the /WEB-INF/views directory -->
   <!--<beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver">-->
       <!--<property name="prefix" value="/jsp/"/>-->
       <!--<property name="suffix" value=".jsp"/>&lt;!&ndash;controller层中返回页面是可以不加.jsp后缀&ndash;&gt;-->
    <!--</bean>-->
</beans>

 

--------------------------------

UpmsLogMapper.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">
<mappernamespace="com.vivebest.dao.UpmsLogMapper">
 
   <sql id="Example_Where_Clause">
       <where>
           <foreach collection="oredCriteria"item="criteria" separator="or">
                <iftest="criteria.valid">
                    <trimprefix="(" prefixOverrides="and" suffix=")">
                        <foreachcollection="criteria.criteria" item="criterion">
                            <choose>
                                <whentest="criterion.noValue">
                                    and${criterion.condition}
                                </when>
                                <whentest="criterion.singleValue">
                                    and${criterion.condition} #{criterion.value}
                                </when>
                                <whentest="criterion.betweenValue">
                                    and${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                                </when>
                                <whentest="criterion.listValue">
                                    and${criterion.condition}
                                    <foreachclose=")" collection="criterion.value"item="listItem" open="(" separator=",">
                                       #{listItem}
                                    </foreach>
                                </when>
                            </choose>
                        </foreach>
                    </trim>
                </if>
           </foreach>
       </where>
   </sql>
 
   <select id="countByExample"parameterType="com.vivebest.entity.UpmsLogExample"resultType="java.lang.Long">
     select count(*) from upms_log
   </select>
   <delete id="deleteByExample"parameterType="com.vivebest.entity.UpmsLogExample">
       delete from upms_log
       <if test="_parameter != null">
           <include refid="Example_Where_Clause" />
       </if>
   </delete>
 
   <select id="countByExampleB"parameterType="com.vivebest.entity.UpmsLogExample"resultType="java.lang.Long">
       select count(*) from upms_log
   </select>
 
   <delete id="deleteByExampleB"parameterType="com.vivebest.entity.UpmsLogExample">
       delete from upms_log
       <if test="_parameter != null">
           <include refid="Example_Where_Clause" />
       </if>
   </delete>
 
   <cache type="org.mybatis.caches.ehcache.LoggingEhcache"/>
</mapper>

 

--------------------------------

WEB部分

 

Web.xml

 

<?xml version="1.0"encoding="UTF-8"?>
<web-appxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
        id="WebApp_ID" version="3.0">
   <display-name>zheng-upms5-server</display-name>
 
   <!-- Spring 容器启动监听器 -->
   <listener>
       <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
   </listener>
 
   <!-- Spring 服务层的配置文件 -->
   <context-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>classpath:applicationContext*.xml</param-value>
   </context-param>
 
   <!-- 日志配置文件 -->
   <context-param>
       <param-name>log4jConfigLocation</param-name>
       <param-value>classpath:log4j.properties</param-value>
   </context-param>
 
   <!-- 配置spring核心servlet -->
   <servlet>
       <servlet-name>springMVC</servlet-name>
       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
       <init-param>
           <param-name>contextConfigLocation</param-name>
           <param-value>classpath:spring-mvc.xml</param-value>
       </init-param>
       <load-on-startup>1</load-on-startup>
   </servlet>
 
   <!-- url-pattern配置为/,不带文件后缀,会造成其它静态文件(js,css等)不能访问。如配为*.do,则不影响静态文件的访问 -->
   <servlet-mapping>
       <servlet-name>springMVC</servlet-name>
        <url-pattern>/</url-pattern>
   </servlet-mapping>
 
</web-app>

 

Index.jsp

 

<html>
<body>
<h2>Hello World!</h2>
</body>
</html>

 

POM.XML部分

 

<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.zheng</groupId>
   <artifactId>zheng-upms5-server</artifactId>
   <packaging>war</packaging>
   <name>zheng-upms5-server Maven Webapp</name>
   <url>http://maven.apache.org</url>
   <version>1.0.0</version>
   <properties>
       <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 
       <maven.compiler.source>1.7</maven.compiler.source>
       <maven.compiler.target>1.7</maven.compiler.target>
       <maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>
 
       <spring.version>4.3.7.RELEASE</spring.version>
       <spring-security.version>4.1.3.RELEASE</spring-security.version>
 
       <mybatis.version>3.4.2</mybatis.version>
       <mybatis-spring.version>1.3.1</mybatis-spring.version>
       <mybatis-pagehelper.version>5.0.1</mybatis-pagehelper.version>
       <mybatis-generator.version>1.3.5</mybatis-generator.version>
       <mybatis-ehcache.version>1.0.0</mybatis-ehcache.version>
       <ehcache.version>2.10.0</ehcache.version>
   </properties>
 
   <dependencies>
       <dependency>
           <groupId>junit</groupId>
           <artifactId>junit</artifactId>
           <version>4.12</version>
           <scope>test</scope>
       </dependency>
       <!-- spring -->
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-context-support</artifactId>
           <version>${spring.version}</version>
       </dependency>
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
       </dependency>
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-jdbc</artifactId>
           <version>${spring.version}</version>
       </dependency>
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-test</artifactId>
           <version>${spring.version}</version>
       </dependency>
       <!-- mybatis -->
       <dependency>
           <groupId>org.mybatis</groupId>
           <artifactId>mybatis</artifactId>
           <version>${mybatis.version}</version>
       </dependency>
       <dependency>
           <groupId>org.mybatis</groupId>
           <artifactId>mybatis-spring</artifactId>
           <version>${mybatis-spring.version}</version>
       </dependency>
       <dependency>
           <groupId>com.github.pagehelper</groupId>
           <artifactId>pagehelper</artifactId>
            <version>${mybatis-pagehelper.version}</version>
       </dependency>
       <dependency>
           <groupId>org.mybatis.generator</groupId>
           <artifactId>mybatis-generator-core</artifactId>
           <version>${mybatis-generator.version}</version>
       </dependency>
       <!-- 缓存 -->
       <dependency>
           <groupId>net.sf.ehcache</groupId>
           <artifactId>ehcache</artifactId>
           <version>${ehcache.version}</version>
       </dependency>
       <dependency>
           <groupId>org.mybatis</groupId>
           <artifactId>mybatis-ehcache</artifactId>
           <version>${mybatis-ehcache.version}</version>
       </dependency>
       <!-- mysql -->
       <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
           <version>5.1.34</version>
           <scope>runtime</scope>
       </dependency>
       <dependency>
           <groupId>com.alibaba</groupId>
           <artifactId>druid</artifactId>
           <version>1.0.14</version>
       </dependency>
       <!-- 日志 -->
       <dependency>
           <groupId>org.slf4j</groupId>
           <artifactId>slf4j-api</artifactId>
           <version>1.7.12</version>
       </dependency>
       <dependency>
           <groupId>org.slf4j</groupId>
           <artifactId>slf4j-log4j12</artifactId>
           <version>1.7.12</version>
       </dependency>
       <!-- 常用工具包 -->
       <dependency>
            <groupId>commons-beanutils</groupId>
           <artifactId>commons-beanutils</artifactId>
           <version>1.9.3</version>
       </dependency>
       <dependency>
           <groupId>commons-lang</groupId>
           <artifactId>commons-lang</artifactId>
           <version>2.6</version>
       </dependency>
       <dependency>
           <groupId>commons-codec</groupId>
           <artifactId>commons-codec</artifactId>
           <version>1.10</version>
       </dependency>
       <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-compress</artifactId>
           <version>1.12</version>
       </dependency>
       <!-- json -->
       <dependency>
           <groupId>net.sf.json-lib</groupId>
           <artifactId>json-lib</artifactId>
           <version>2.4</version>
           <classifier>jdk15</classifier>
       </dependency>
       <dependency>
           <groupId>com.alibaba</groupId>
           <artifactId>fastjson</artifactId>
           <version>1.2.28</version>
       </dependency>
       <dependency>
           <groupId>com.fasterxml.jackson.core</groupId>
           <artifactId>jackson-core</artifactId>
           <version>2.6.5</version>
       </dependency>
       <dependency>
           <groupId>com.fasterxml.jackson.core</groupId>
           <artifactId>jackson-databind</artifactId>
           <version>2.6.5</version>
       </dependency>
       <dependency>
           <groupId>com.fasterxml.jackson.core</groupId>
           <artifactId>jackson-annotations</artifactId>
           <version>2.6.5</version>
       </dependency>
       <!-- servlet -->
       <dependency>
           <groupId>javax.servlet</groupId>
           <artifactId>servlet-api</artifactId>
           <version>2.5</version>
           <scope>provided</scope>
       </dependency>
       <dependency>
           <groupId>javax.servlet</groupId>
           <artifactId>jstl</artifactId>
           <version>1.2</version>
       </dependency>
   </dependencies>
 
   <build>
       <finalName>zheng-upms5-server</finalName>
       <plugins>
           <plugin>
               <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
               <version>2.18.1</version>
                <configuration>
                   <skipTests>true</skipTests>
                   <testFailureIgnore>true</testFailureIgnore>
                </configuration>
           </plugin>
       </plugins>
   </build>
 
</project>

 

3、测试方法

 
http://localhost:1111/customer/queryLog                       
通过从库处理
 
http://localhost:1111/customer/queryLogB
通过主库处理
 
http://localhost:1111/customer/deleteLog/1
通过主库处理
 
http://localhost:1111/customer/deleteLogB/2
通过主库处理