Spring+MyBatis多資料來源配置實現
最近用到了MyBatis配置多資料來源,原以為簡單配置下就行了,實際操作後發現還是要費些事的,這裡記錄下,以作備忘
不多廢話,直接上程式碼,後面會有簡單的實現介紹
jdbc和log4j的配置
#定義輸出格式 ConversionPattern=%d %-5p [%t] %c - %m%n log4j.rootLogger=DEBUG,Console log4j.logger.com.cnblogs.lzrabbit=DEBUG log4j.logger.org.springframework=ERROR log4j.logger.org.mybatis=ERROR log4j.logger.org.apache.ibatis=ERROR log4j.logger.org.quartz=ERROR log4j.logger.org.apache.axis2=ERROR log4j.logger.org.apache.axiom=ERROR log4j.logger.org.apache=ERROR log4j.logger.httpclient=ERROR #log4j.additivity.org.springframework=false #Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.Threshold=DEBUG log4j.appender.Console.Target=System.out log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=${ConversionPattern} #log4j.appender.Console.encoding=UTF-8 #org.apache.log4j.DailyRollingFileAppender log4j.appender.DailyFile=org.apache.log4j.DailyRollingFileAppender log4j.appender.DailyFile.DatePattern='.'yyyy-MM-dd'.log' log4j.appender.DailyFile.File=${myApp.root}/logs/daily.log log4j.appender.DailyFile.Append=true log4j.appender.DailyFile.Threshold=DEBUG log4j.appender.DailyFile.layout=org.apache.log4j.PatternLayout log4j.appender.DailyFile.layout.ConversionPattern=${ConversionPattern} log4j.appender.DailyFile.encoding=UTF-8 # %c 輸出日誌資訊所屬的類的全名 # %d 輸出日誌時間點的日期或時間,預設格式為ISO8601,也可以在其後指定格式,比如:%d{yyy-MM-dd HH:mm:ss},輸出類似:2002-10-18- 22:10:28 # %f 輸出日誌資訊所屬的類的類名 # %l 輸出日誌事件的發生位置,即輸出日誌資訊的語句處於它所在的類的第幾行 # %m 輸出程式碼中指定的資訊,如log(message)中的message # %n 輸出一個回車換行符,Windows平臺為“rn”,Unix平臺為“n” # %p 輸出優先順序,即DEBUG,INFO,WARN,ERROR,FATAL。如果是呼叫debug()輸出的,則為DEBUG,依此類推 # %r 輸出自應用啟動到輸出該日誌資訊所耗費的毫秒數 # %t 輸出產生該日誌事件的執行緒名
#============================================================================ # MySQL #============================================================================ jdbc.mysql.driver=com.mysql.jdbc.Driver jdbc.mysql.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true jdbc.mysql.username=root jdbc.mysql.password=root #============================================================================ # MS SQL Server #============================================================================ #jdbc.sqlserver.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver #jdbc.sqlserver.url=jdbc:sqlserver://127.0.0.1:1433;database=test; #jdbc.sqlserver.username=sa #jdbc.sqlserver.password=sa #============================================================================ # MS SQL Server (JTDS) #============================================================================ jdbc.sqlserver.driver=net.sourceforge.jtds.jdbc.Driver jdbc.sqlserver.url=jdbc:jtds:sqlserver://127.0.0.1:1433/test jdbc.sqlserver.username=sa jdbc.sqlserver.password=sa #============================================================================ # 通用配置 #============================================================================ jdbc.initialSize=5 jdbc.minIdle=5 jdbc.maxIdle=20 jdbc.maxActive=100 jdbc.maxWait=100000 jdbc.defaultAutoCommit=false jdbc.removeAbandoned=true jdbc.removeAbandonedTimeout=600 jdbc.testWhileIdle=true jdbc.timeBetweenEvictionRunsMillis=60000 jdbc.numTestsPerEvictionRun=20 jdbc.minEvictableIdleTimeMillis=300000
單資料來源時的Spring配置檔案
<?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" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:jdbc.properties"/> </bean> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.mysql.driver}"/> <property name="url" value="${jdbc.mysql.url}"/> <property name="username" value="${jdbc.mysql.username}"/> <property name="password" value="${jdbc.mysql.password}"/> <property name="initialSize" value="${jdbc.initialSize}"/> <property name="minIdle" value="${jdbc.minIdle}"/> <property name="maxIdle" value="${jdbc.maxIdle}"/> <property name="maxActive" value="${jdbc.maxActive}"/> <property name="maxWait" value="${jdbc.maxWait}"/> <property name="defaultAutoCommit" value="${jdbc.defaultAutoCommit}"/> <property name="removeAbandoned" value="${jdbc.removeAbandoned}"/> <property name="removeAbandonedTimeout" value="${jdbc.removeAbandonedTimeout}"/> <property name="testWhileIdle" value="${jdbc.testWhileIdle}"/> <property name="timeBetweenEvictionRunsMillis" value="${jdbc.timeBetweenEvictionRunsMillis}"/> <property name="numTestsPerEvictionRun" value="${jdbc.numTestsPerEvictionRun}"/> <property name="minEvictableIdleTimeMillis" value="${jdbc.minEvictableIdleTimeMillis}"/> </bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> </bean> <!-- mybatis.spring自動對映 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.cnblogs.lzrabbit"相關推薦
Spring+MyBatis多資料來源配置實現
最近用到了MyBatis配置多資料來源,原以為簡單配置下就行了,實際操作後發現還是要費些事的,這裡記錄下,以作備忘 不多廢話,直接上程式碼,後面會有簡單的實現介紹 jdbc和log4j的配置 #定義輸出格式 ConversionPattern=
Spring+MyBatis多資料來源配置實現(mysql和sqlserver資料庫)
最近用到了MyBatis配置多資料來源,原以為簡單配置下就行了,實際操作後發現還是要費些事的,這裡記錄下,以作備忘 不多廢話,直接上程式碼,後面會有簡單的實現介紹 jdbc和log4j的配置 #定義輸出格式 ConversionPattern=%d %-5p [%t] %c - %m%n log4j.
Spring Boot + Mybatis 多資料來源配置實現讀寫分離
本文來自網易雲社群作者:王超應用場景:專案中有一些報表統計與查詢功能,對資料實時性要求不高,因此考慮對報表的統計與查詢去操作slave db,減少對master的壓力。根據網上多份資料測試發現總是使用master資料來源,無法切換到slave,經過多次除錯修改現已完美通過,現
Spring+Mybatis多資料來源配置(四)——AbstractRoutingDataSource實現資料來源動態切換
有時候需要在程式中動態切換資料來源,那麼這個系列的之前的博文所闡述的方法就不再使用了,總不能通過程式更改config.properties檔案的dataSource的值,然後再重啟web伺服器以便載入applicationContext.xml檔案。這裡講訴的是如何利用Ab
springboot+mybatis多資料來源配置實現
簡單實現了根據註解動態切換資料來源,支援同一個資料庫的宣告式事務,但不支援JTA事務。處理流程: 根據配置的資料來源資訊,建立動態資料來源bean 利用DataSourceAspect處理@DataSource註解,設定當前要使用的具體資料來源 pom.xm
spring mybatis 多資料來源配置
1、建立好資料庫的配置檔案 mysql.url=jdbc:mysql://***/***?useUnicode=true&characterEncoding=UTF-8 mysql.username=*** mysql.password=*** mysql.driverClassName=co
spring boot druid mybatis 多資料來源配置
1.application.properties spring.datasource.url = jdbc\:mysql\://192.168.1.1\:3306/business?autoRconnect\=true&useUnicode\=true&ch
Spring, MyBatis 多資料來源的配置和管理
原文連結:http://www.2cto.com/kf/201505/400273.html 同一個專案有時會涉及到多個數據庫,也就是多資料來源。多資料來源又可以分為兩種情況: 1)兩個或多個數據庫沒有相關性,各自獨立,其實這種可以作為兩個專案來開
wordybear之STS下spring boot、mybatis多資料來源配置完全攻略及原始碼工程
// 2017.09.01 本文所依賴的開發環境早已更改為intellij idea,然而並不影響任何 本文面對初學者,在對基礎有些瞭解但又似懂非懂有些混亂的情況下(作者一般學習新技的最初狀態,此時需要冷靜)。 但是,仔細閱讀本文,將會在相同或相似的環境下實現sts下spr
spring boot druid mybatis 多資料來源 配置
spring boot 在配置時做了很多簡化配置的設定,但是簡化的配置往往已犧牲一定的定製化,比如在資料來源的配置時,spring boot 只提供4種資料庫連線池的配置,其中並不支援常用的druid 閱讀spring boot DataSourceB
Spring Boot從入門到精通(五)多資料來源配置實現及原始碼分析
多資料來源配置在專案軟體中是比較常見的開發需求,Spring和Spring Boot中對此都有相應的解決方案可供大家參考。在Spring Boot中,如MyBatis、JdbcTemplate以及Jpa都可以配置多資料來源。 本文在前一篇“Spring Boot從入門到精通(四)連線MySQL資料庫(附原始碼
springboot+mybatis多資料來源配置,AOP註解動態切換資料來源
轉載至:https://blog.csdn.net/xiaosheng_papa/article/details/80218006 親測有效。 注:有些系統中已經配置了單資料來源,現在要轉成多資料來源,可能需要額外的配置。拿我自己當前專案來說: 專案在啟動類中配置了單資料來源:
基於SpirngBoot2.0+ 的 SpringBoot+Mybatis 多資料來源配置
Github 地址:github.com/Snailclimb/…(SpringBoot和其他常用技術的整合,可能是你遇到的講解最詳細的學習案例,力爭新手也能看懂並且能夠在看完之後獨立實踐。基於最新的 SpringBoot2.0+,是你學習SpringBoot 的最佳指南。) ,歡迎各位 Star。
新手也能看懂,基於SpirngBoot2.0+ 的 SpringBoot+Mybatis 多資料來源配置
Github 地址:https://github.com/Snailclimb/springboot-integration-examples(SpringBoot和其他常用技術的整合,可能是你遇到的講解最詳細的學習案例,力爭新手也能看懂並且能夠在看完之後獨立實踐。基於最新的 S
spring mvc 多資料來源配置
、首先配置兩個資料庫 <bean id="dataSourceA" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="
Spring Boot多資料來源配置(一)durid、mysql、jpa整合
目前在做一個統計專案。需要多資料來源整合,其中包括mysql和mongo。本節先講mysql、durid、jpa與spring-boot的整合。 引入Durid包 <dependency> <groupId>com.a
spring boot 多資料來源配置
我們在開發過程中可能需要用到多個數據源,我們有一個專案(MySQL)就是和別的專案(SQL Server)混合使用了。其中SQL Server是別的公司開發的,有些基本資料需要從他們平臺進行調取,那麼在專案中就需要支援多資料來源,不然就只能獲取到自己的資料來源的資料了。當
SpringMVC JdbcTemplate 多資料來源配置實現
如果有業務需求,單個工程需要連線多個數據庫,那麼就要配置多資料來源,不同資料需求請求不同資料來源,如下是雙資料來源具體實現步驟: 1. 配置檔案中配置兩個資料庫的連線資訊 jdbc.properties: db1.jdbc.driver=com.mysql.jdbc.D
springMVC+Mybatis多資料來源配置
每個MapperScannerConfigurer配置新增屬性節點 <property name="sqlSessionFactory" ref="SqlSessionFactory01"></property> ,ref引入相應的會話工廠bean。 <!--01
spring+mybatis 多資料來源切換失敗的可能原因。
可能因為,加了事務。 //@Transactional(readOnly = false) // 需要事務操作必須加入此註解 就因為加了事務,導致了,問題的出現。 不然setCustomerType,也沒有出現應有的結果。 害得我把spring的框架都改寫了,不過由於