java實現mysql的主從切換(第二部分)

Resources部分

 

--------------------------------css

applicationContext-datasource.xmlhtml

 

<?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>

 

--------------------------------java

applicationContext-listener.xmlmysql

 

<?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>

 

--------------------------------git

jdbc.propertiesgithub

 

#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

 

--------------------------------web

log4j.propertiesspring

 

#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

 

--------------------------------sql

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
經過主庫處理
相關文章
相關標籤/搜索