java实现mysql的主从切换(第二部分)
生活随笔
收集整理的這篇文章主要介紹了
java实现mysql的主从切换(第二部分)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
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.xsdhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.0.xsdhttp://www.springframework.org/schema/jdbchttp://www.springframework.org/schema/jdbc/spring-jdbc-4.0.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-4.0.xsdhttp://www.springframework.org/schema/aop?http://www.springframework.org/schema/aop/spring-aop-4.0.xsdhttp://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?--><!--?主庫數(shù)據(jù)源?--><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"/><!--?配置獲取連接等待超時(shí)的時(shí)間?--><property?name="maxWait"?value="60000"/><!--?配置間隔多久才進(jìn)行一次檢測(cè),檢測(cè)需要關(guān)閉的空閑連接,單位是毫秒?--><property?name="timeBetweenEvictionRunsMillis"value="60000"/><!--?配置一個(gè)連接在池中最小生存的時(shí)間,單位是毫秒?--><property?name="minEvictableIdleTimeMillis"value="300000"/><!--?校驗(yàn)語句?--><property?name="validationQuery"?value="SELECT1"/><propertyname="testWhileIdle"?value="true"/><property?name="testOnBorrow"?value="false"/><property?name="testOnReturn"?value="false"/><!--?配置監(jiān)控統(tǒng)計(jì)攔截的filters?--><property?name="filters"?value="stat"/></bean><!--?從庫數(shù)據(jù)源?--><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"/><!--?配置獲取連接等待超時(shí)的時(shí)間?--><property?name="maxWait"?value="60000"/><!--?配置間隔多久才進(jìn)行一次檢測(cè),檢測(cè)需要關(guān)閉的空閑連接,單位是毫秒?--><property?name="timeBetweenEvictionRunsMillis"value="60000"/><!--?配置一個(gè)連接在池中最小生存的時(shí)間,單位是毫秒?--><property?name="minEvictableIdleTimeMillis"value="300000"/><!--?校驗(yàn)語句?--><property?name="validationQuery"?value="SELECT1"/><property?name="testWhileIdle"?value="true"/><property?name="testOnBorrow"?value="false"/><property?name="testOnReturn"?value="false"/><!--?配置監(jiān)控統(tǒng)計(jì)攔截的filters?--><property?name="filters"?value="stat"/></bean><!--?動(dòng)態(tài)數(shù)據(jù)源?--><bean?id="dataSource"class="com.vivebest.util.DynamicDataSource"><property?name="targetDataSources"><map?key-type="java.lang.String"><!--?可配置多個(gè)數(shù)據(jù)源--><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><!--?當(dāng)配置文件在其他目錄時(shí)?--></bean><!--?scan?for?mappers?and?let?them?be?autowired?--><!--?DAO接口所在包名,Spring會(huì)自動(dòng)查找其下的類?--><beanclass="org.mybatis.spring.mapper.MapperScannerConfigurer"><propertyname="basePackage"?value="com.vivebest.dao"/><property?name="sqlSessionFactoryBeanName"value="sqlSessionFactory"/></bean><!--?事務(wù)管理器?--><bean?id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property?name="dataSource"?ref="dataSource"/></bean><!--?啟動(dòng)注解事務(wù)?--><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/contexthttp://www.springframework.org/schema/context/spring-context-4.0.xsdhttp://www.springframework.org/schema/beanshttp://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><!--啟動(dòng)時(shí)初始化Spring上下文環(huán)境工具類?--><bean?id="springContextUtil"class="com.vivebest.util.SpringContextUtil"></bean><!--?Spring容器初始化完成監(jiān)聽器?--><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?=?rootdataSource.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?=?rootdataSource.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?configurationPUBLIC"-//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"><!--分頁插件會(huì)自動(dòng)檢測(cè)當(dāng)前的數(shù)據(jù)庫鏈接,自動(dòng)選擇合適的分頁方式。你可以配置helperDialect屬性來指定分頁插件使用哪種方言。配置時(shí),可以使用下面的縮寫值:oracle,mysql,mariadb,sqlite,hsqldb,postgresql,db2,sqlserver,informix,h2,sqlserver2012,derby特別注意:使用SqlServer2012?數(shù)據(jù)庫時(shí),需要手動(dòng)指定為?sqlserver2012,否則會(huì)使用?SqlServer2005?的方式進(jìn)行分頁--><!--<propertyname="helperDialect"?value="mysql"/>--><!--默認(rèn)值為?false,該參數(shù)對(duì)使用RowBounds?作為分頁參數(shù)時(shí)有效。當(dāng)該參數(shù)設(shè)置為?true?時(shí),會(huì)將?RowBounds中的?offset?參數(shù)當(dāng)成?pageNum?使用,可以用頁碼和頁面大小兩個(gè)參數(shù)進(jìn)行分頁。--><propertyname="offsetAsPageNum"?value="false"/><!--默認(rèn)值為false,該參數(shù)對(duì)使用RowBounds?作為分頁參數(shù)時(shí)有效。當(dāng)該參數(shù)設(shè)置為true時(shí),使用?RowBounds?分頁會(huì)進(jìn)行?count?查詢。--><propertyname="rowBoundsWithCount"?value="true"/><!--默認(rèn)值為?false,當(dāng)該參數(shù)設(shè)置為?true時(shí),如果?pageSize=0?或者?RowBounds.limit?=?0?就會(huì)查詢出全部的結(jié)果(相當(dāng)于沒有執(zhí)行分頁查詢,但是返回結(jié)果仍然是?Page?類型)。--><propertyname="pageSizeZero"?value="false"/><!--分頁合理化參數(shù),默認(rèn)值為false。當(dāng)該參數(shù)設(shè)置為?true時(shí),pageNum<=0?時(shí)會(huì)查詢第一頁,?pageNum>pages(超過總數(shù)時(shí)),會(huì)查詢最后一頁。默認(rèn)false?時(shí),直接根據(jù)參數(shù)進(jìn)行查詢。--><propertyname="reasonable"?value="false"/><!--為了支持startPage(Objectparams)方法,增加了該參數(shù)來配置參數(shù)映射,用于從對(duì)象中根據(jù)屬性名取值,可以配置?pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默認(rèn)值默認(rèn)值為pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero。--><propertyname="params"value="pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero"/><!--支持通過?Mapper?接口參數(shù)來傳遞分頁參數(shù),默認(rèn)值false,分頁插件會(huì)從查詢方法的參數(shù)值中,自動(dòng)根據(jù)上面?params?配置的字段中取值,查找到合適的值時(shí)就會(huì)自動(dòng)分頁。使用方法可以參考測(cè)試代碼中的?com.github.pagehelper.test.basic?包下的?ArgumentsMapTest?和ArgumentsObjTest。--><propertyname="supportMethodsArguments"?value="false"/><!--默認(rèn)值為?false。設(shè)置為?true?時(shí),允許在運(yùn)行時(shí)根據(jù)多數(shù)據(jù)源自動(dòng)識(shí)別對(duì)應(yīng)方言的分頁?(不支持自動(dòng)選擇sqlserver2012,只能使用sqlserver)--><propertyname="autoRuntimeDialect"?value="true"/><!--默認(rèn)值為?true。當(dāng)使用運(yùn)行時(shí)動(dòng)態(tài)數(shù)據(jù)源或沒有設(shè)置?helperDialect?屬性自動(dòng)獲取數(shù)據(jù)庫類型時(shí),會(huì)自動(dòng)獲取一個(gè)數(shù)據(jù)庫連接,通過該屬性來設(shè)置是否關(guān)閉獲取的這個(gè)連接默認(rèn)true關(guān)閉,設(shè)置為?false?后,不會(huì)關(guān)閉獲取的連接,這個(gè)參數(shù)的設(shè)置要根據(jù)自己選擇的數(shù)據(jù)源來決定。--><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.xsdhttp://www.springframework.org/schema/beans?http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!--?DispatcherServlet?Context:?defines?this?servlet'srequest-processing?infrastructure?--><!--?掃描控制器包?--><!--?@Service用于標(biāo)注業(yè)務(wù)層組件、?@Controller用于標(biāo)注控制層組件、@Repository用于標(biāo)注數(shù)據(jù)訪問組件,即DAO組件。而@Component泛指組件,當(dāng)組件不好歸類的時(shí)候,我們可以使用這個(gè)注解進(jìn)行標(biāo)注。--><context:component-scanbase-package="com.vivebest.controller"?/><!--?Enables?the?Spring?MVC?@Controller?programming?model?--><!--?啟動(dòng)springmvc注解?--><mvc:annotation-driven?/><!--?啟動(dòng)Spring?MVC的注解功能,完成請(qǐng)求和注解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"/><!–controller層中返回頁面是可以不加.jsp后綴–>--><!--</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?容器啟動(dòng)監(jiān)聽器?--><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!--?Spring?服務(wù)層的配置文件?--><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配置為/,不帶文件后綴,會(huì)造成其它靜態(tài)文件(js,css等)不能訪問。如配為*.do,則不影響靜態(tài)文件的訪問?--><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、測(cè)試方法
? http://localhost:1111/customer/queryLog??????????????????????? 通過從庫處理http://localhost:1111/customer/queryLogB 通過主庫處理http://localhost:1111/customer/deleteLog/1 通過主庫處理http://localhost:1111/customer/deleteLogB/2 通過主庫處理?
轉(zhuǎn)載于:https://blog.51cto.com/ylcodes01/1970028
總結(jié)
以上是生活随笔為你收集整理的java实现mysql的主从切换(第二部分)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [翻译]ElasticSearch官方文
- 下一篇: 智能家居——IoT零基础入门篇