Spring, MyBatis 多資料來源的配置和管理
原文連結:http://www.2cto.com/kf/201505/400273.html
同一個專案有時會涉及到多個數據庫,也就是多資料來源。多資料來源又可以分為兩種情況:
1)兩個或多個數據庫沒有相關性,各自獨立,其實這種可以作為兩個專案來開發。比如在遊戲開發中一個數據庫是平臺數據庫,其它還有平臺下的遊戲對應的資料庫; 2)兩個或多個數據庫是master-slave的關係,比如有mysql搭建一個 master-master,其後又帶有多個slave;或者採用MHA搭建的master-slave複製; 目前我所知道的 Spring 多資料來源的搭建大概有兩種方式,可以根據多資料來源的情況進行選擇。 1. 採用spring配置檔案直接配置多個數據源比如針對兩個資料庫沒有相關性的情況,可以採用直接在spring的配置檔案中配置多個數據源,然後分別進行事務的配置,如下所示:
- <context:component-scanbase-package="net.aazj.service,net.aazj.aop"/>
- <context:component-scanbase-package="net.aazj.aop"/>
- <!-- 引入屬性檔案 -->
- <context:property-placeholderlocation="classpath:config/db.properties"/>
- <!-- 配置資料來源 -->
-
<beanname="dataSource"class
- <propertyname="url"value="${jdbc_url}"/>
- <propertyname="username"value="${jdbc_username}"/>
- <propertyname="password"value="${jdbc_password}"/>
- <!-- 初始化連線大小 -->
-
<property
- <!-- 連線池最大使用連線數量 -->
- <propertyname="maxActive"value="20"/>
- <!-- 連線池最大空閒 -->
- <propertyname="maxIdle"value="20"/>
- <!-- 連線池最小空閒 -->
- <propertyname="minIdle"value="0"/>
- <!-- 獲取連線最大等待時間 -->
- <propertyname="maxWait"value="60000"/>
- </bean>
- <beanid="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">
- <propertyname="dataSource"ref="dataSource"/>
- <propertyname="configLocation"value="classpath:config/mybatis-config.xml"/>
- <propertyname="mapperLocations"value="classpath*:config/mappers/**/*.xml"/>
- </bean>
- <!-- Transaction manager for a single JDBC DataSource -->
- <beanid="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
- <propertyname="dataSource"ref="dataSource"/>
- </bean>
- <!-- 使用annotation定義事務 -->
- <tx:annotation-driventransaction-manager="transactionManager"/>
- <beanclass="org.mybatis.spring.mapper.MapperScannerConfigurer">
- <propertyname="basePackage"value="net.aazj.mapper"/>
- <propertyname="sqlSessionFactoryBeanName"value="sqlSessionFactory"/>
- </bean>
- <!-- Enables the use of the @AspectJ style of Spring AOP -->
- <aop:aspectj-autoproxy/>
- <!-- ===============第二個資料來源的配置=============== -->
- <beanname="dataSource_2"class="com.alibaba.druid.pool.DruidDataSource"init-method="init"destroy-method="close">
- <propertyname="url"value="${jdbc_url_2}"/>
- <propertyname="username"value="${jdbc_username_2}"/>
- <propertyname="password"value="${jdbc_password_2}"/>
- <!-- 初始化連線大小 -->
- <propertyname="initialSize"value="0"/>
- <!-- 連線池最大使用連線數量 -->
- <propertyname="maxActive"value="20"/>
- <!-- 連線池最大空閒 -->
- <propertyname="maxIdle"value="20"/>
- <!-- 連線池最小空閒 -->
- <propertyname="minIdle"value="0"/>
- <!-- 獲取連線最大等待時間 -->
- <propertyname="maxWait"value="60000"/>
- </bean>
-
<
相關推薦
Spring+MyBatis多資料來源配置實現(mysql和sqlserver資料庫)
最近用到了MyBatis配置多資料來源,原以為簡單配置下就行了,實際操作後發現還是要費些事的,這裡記錄下,以作備忘 不多廢話,直接上程式碼,後面會有簡單的實現介紹 jdbc和log4j的配置 #定義輸出格式 ConversionPattern=%d %-5p [%t] %c - %m%n log4j.
spring mybatis 多資料來源配置
1、建立好資料庫的配置檔案 mysql.url=jdbc:mysql://***/***?useUnicode=true&characterEncoding=UTF-8 mysql.username=*** mysql.password=*** mysql.driverClassName=co
Spring+MyBatis多資料來源配置實現
最近用到了MyBatis配置多資料來源,原以為簡單配置下就行了,實際操作後發現還是要費些事的,這裡記錄下,以作備忘 不多廢話,直接上程式碼,後面會有簡單的實現介紹 jdbc和log4j的配置 #定義輸出格式 ConversionPattern=
Spring+Mybatis多資料來源配置(四)——AbstractRoutingDataSource實現資料來源動態切換
有時候需要在程式中動態切換資料來源,那麼這個系列的之前的博文所闡述的方法就不再使用了,總不能通過程式更改config.properties檔案的dataSource的值,然後再重啟web伺服器以便載入applicationContext.xml檔案。這裡講訴的是如何利用Ab
Spring, MyBatis 多資料來源的配置和管理
原文連結:http://www.2cto.com/kf/201505/400273.html 同一個專案有時會涉及到多個數據庫,也就是多資料來源。多資料來源又可以分為兩種情況: 1)兩個或多個數據庫沒有相關性,各自獨立,其實這種可以作為兩個專案來開
Spring Boot + Mybatis 多資料來源配置實現讀寫分離
本文來自網易雲社群作者:王超應用場景:專案中有一些報表統計與查詢功能,對資料實時性要求不高,因此考慮對報表的統計與查詢去操作slave db,減少對master的壓力。根據網上多份資料測試發現總是使用master資料來源,無法切換到slave,經過多次除錯修改現已完美通過,現
spring boot druid mybatis 多資料來源配置
1.application.properties spring.datasource.url = jdbc\:mysql\://192.168.1.1\:3306/business?autoRconnect\=true&useUnicode\=true&ch
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
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
springboot+mybatis多資料來源配置實現
簡單實現了根據註解動態切換資料來源,支援同一個資料庫的宣告式事務,但不支援JTA事務。處理流程: 根據配置的資料來源資訊,建立動態資料來源bean 利用DataSourceAspect處理@DataSource註解,設定當前要使用的具體資料來源 pom.xm
Spring實現多資料來源配置
一、前言 對於小型專案,伺服器與資料庫是可以在同一臺機子上的,但隨著業務的龐大與負責,資料庫和伺服器就會分離開來。同時隨著資料量的增大,資料庫也要分開部署到多臺機子上。 二、Spring配置檔案修改 在理論學習與實踐的差距:框架開源與不可
Spring中bean的配置和管理
1 Spring中bean的配置 1.1 <bean>標籤的id和name區別 id :使用了約束中的唯一約束。裡面不能出現特殊字元的。 name :沒
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+Mybatis多資料來源配置
每個MapperScannerConfigurer配置新增屬性節點 <property name="sqlSessionFactory" ref="SqlSessionFactory01"></property> ,ref引入相應的會話工廠bean。 <!--01
spring+mybatis 多資料來源切換失敗的可能原因。
可能因為,加了事務。 //@Transactional(readOnly = false) // 需要事務操作必須加入此註解 就因為加了事務,導致了,問題的出現。 不然setCustomerType,也沒有出現應有的結果。 害得我把spring的框架都改寫了,不過由於