實測有用,簡單幾步配置spring boot+mybatis-plus多數據源

2021-01-08 人人都是程式設計師

人人都是程式設計師,希望在零碎的閱讀時間裡,給您一些技術提升。

1 讀寫分離及多數據源

在我們開發的大多數業務中,往往讀多寫少,資料庫的讀會首先變成資料庫使用的瓶頸。此時,我們必須能夠提升資料庫的讀性能。

一般寫1萬條數據的時間比讀1萬條的數據時間大很多。讀寫鎖衝突從會限制資料庫讀的性能,讀寫分離來保證數據使用性能。用一句話概括,讀寫分離可以很好地解決資料庫的讀性能瓶頸的。一般都是一個主伺服器負責寫入,多個從伺服器負責查詢。

讀寫分離的關鍵是一個項目同時訪問多個數據源,也就是可以將數據存儲的不同伺服器的不同資料庫上。下面介紹spring boot+mybat-plus如何配置多個數據源,並實現數據操作測試。

2 項目配置

不多說,項目代碼直接搞起來。先創建一個集成了mybatis-plus的spring boot的項目,關於如何創建,及mybatis-plus的更多使用,請關注小編其他的文章。

先在pom.xml導入項目依賴,如下圖。

需要注意的是,這裡用了druid和aop兩個依賴。

然後在配置文件配置主從數據源,實際項目可以讓master用來寫,slave用來讀。

3 數據源配置

創建一個multiple包,新建DataSourceContextHolder類,配置數據源的上下文,如下圖。

在同包下創建MultipleDataSource類,繼承AbstractRoutingDataSource,如下圖。

再創建一個config包,添加druid配置文件類,如下圖。這裡請注意,在pom.xml引入druid的版本必須是1.1.9,否則會出錯。

創建數據源枚舉,如下圖。

創建數據源註解,用於設置接口所用哪個數據源。創建一個annotation包,包下創建註解接口,如下圖。

對數據源選擇進行切面處理,創建AOP,在數據源切換時進行日誌輸出。

最後的配置,在config包下,創建MyBatiesPlusConfiguration,進行如下配置。

4 創建實體類,dao層,service層

在entity包下創建一個Goods實體類,添加@Data註解;在mapper包下創建GoodsMapper接口,添加@Mapper註解;在service包下創建GoodServcie註解,添加@Service註解,在service裡面分別創建兩對添加商品和查詢商品的接口,分別加上@DataSource註解,分別對應DataSourceEnum.db1和DataSourceEnum.db2的數據源註解,分別對兩個不同的數據源進行操作。

5 測試效果

在測試用例添加一個測試方法,分別給db1,db2插入一條商品數據,然後在分別將兩個不同的資料庫數據查詢出來。測試項目是否正常切換表操作兩個資料庫的數據。

通過測試。

6 結束語

人人都是程式設計師,感謝您的閱讀,歡迎關注。

相關焦點

  • Spring boot整合mybatis多數據源簡單使用
    日常開發中,我們很少會在一個應用程式中同時使用多個數據源。但是,如果涉及一些數據遷移等應用,可能會涉及將數據從一個庫遷移到另外一個庫,甚至是不同類型的資料庫,比如MySQL到Oracle。這篇博文,我們不介紹mybatis的基本使用,只介紹基於mybatis配置多數據源的方法。
  • 基於SpirngBoot2.0+ 的 SpringBoot+Mybatis 多數據源配置
    但是往往隨著業務量發展,我們通常會進行資料庫拆分或是引入其他資料庫,從而我們需要配置多個數據源。下面基於 SpringBoot+Mybatis ,帶著大家看一下 SpringBoot 中如何配置多數據源。
  • SpringBoot+Mybatis+druid 多數據源配置
    其實配置相當簡單,僅供學習參考,如有不足請賜教。mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.1</version
  • Spring boot怎麼整合Mybatis-plus
    nbsp;  <version>1.1.20</version></dependency><dependency>    <groupId>com.baomidou</groupId>    <artifactId>mybatis-plus-boot-starter
  • spring boot 配置多數據源 (簡單實用!!)
    -- https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter --><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter
  • Spring boot整合持久層框架Mybatis
    mybatis,大致概括了其過程,希望對大家有幫助。-- Spring Boot 整合的 mybatis 的依賴jar包,其中包含mybatis相關的依賴 --><dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId>
  • Spring boot與MyBatis簡單整合
    之前搭傳統的ssm框架,配置文件很多,看了幾天文檔才把那些xml的邏輯關係搞得七七八八,搭起來也是很麻煩,那時我完全按網上那個demo的版本要求(jdk和tomcat),所以最後是各種問題沒成功跑起來。 今天嘗試用springboot來整合,不敢相信才失敗幾次就成功了!!
  • Spring Boot與多數據源那點事兒
    很明顯第一種方案涉及到了至少兩個資料庫了,一個是HIS資料庫,一個自己系統的資料庫,在單一應用中必然需要用到多數據源的切換才能達到目的。當然多數據源的使用場景還是有很多的,以上只是簡單的一個場景。整合MybatisSpring Boot 整合Mybatis其實很簡單,簡單的幾步就搞定,首先添加依賴:<dependency> <groupId>org.mybatis.spring.boot</groupId>
  • 深入Spring Boot (十):整合Mybatis框架詳解
    數據源配置數據源配置可以在application.properties或application.yml中配置,例如可以在application.properties中聲明以下數據源配置:spring.datasource.url=jdbc:mysql://localhost:3306/test?
  • SpringBoot實戰(三):Mybatis配置多數據源
    【前言】 最近接到一個新需求,經過分析後做了相應的設計;其中需要在一個項目中操做不同的數據源;於是進行了相關驗證;在此記錄一下驗證過程。【實戰多數據源】 一、Pom中引入相應的Jar包<!-- mybatis --><dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter&
  • MyBatis初級實戰之四:druid多數據源
    GitHubhttps://github.com/zq2599/blog_demos內容:所有原創文章分類匯總及配套源碼,涉及Java、Docker、Kubernetes、DevOPS等;關於druid多數據源
  • spring-boot-plus 1.0.0 發布,後臺快速開發框架
    spring-boot-plus 是一套集成 spring boot 常用開發組件的後臺快速開發框架Purpose
  • MyBatis初級實戰之一:Spring Boot集成
    MyBatis 可以通過簡單的 XML 或註解來配置和映射原始類型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 對象)為資料庫中的記錄。實戰環境《MyBatis初級實戰》系列的環境信息如下:1.
  • mybatis-plus思維導圖,讓mybatis-plus不再難懂
    MyBatis 可以使用簡單的 XML 或註解來配置和映射原生信息,將接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java對象)映射成資料庫中的記錄。但mybatis有個讓我比較頭疼的一個問題是sql工作量很大,尤其是欄位多的時候。
  • 基於 SpringBoot2.0+優雅整合 SpringBoot+Mybatis
    明天更新,新手也能看懂的基於SpirngBoot2.0+ 的 SpringBoot+Mybatis 多數據源配置,提前預報一下,需要這方面知識的不要錯過哦!下面就開始吧!pom 文件中的相關依賴由於要整合 springboot 和 mybatis 所以加入了artifactId 為 mybatis-spring-boot-starter 的依賴,由於使用了Mysql 資料庫 所以加入了artifactId 為 mysql-connector-java 的依賴。
  • SpringBoot配置數據源及MyBatis分頁的要點
    ,容易出現分頁無效的問題,這種情況常見於自定義數據源的情況。MyBatis 的分頁有兩種,一種是用 MyBatisPlus 的分頁,另一種是使用 PageHelper 分頁插件。無論哪一種,都需要為數據源設置分頁插件配置。
  • Spring Boot + MyBatis 多模塊搭建教程
    集成Mybatis父pom文件中聲明mybatis-spring-boot-starter及lombok依賴dependencyManagement><dependencies><dependency>        
  • Spring Boot 2.x基礎教程:MyBatis的多數據源配置
    前兩天,我們已經介紹了關於JdbcTemplate的多數據源配置以及Spring Data JPA的多數據源配置,接下來具體說說使用MyBatis時候的多數據源場景該如何配置。=rootspring.datasource.secondary.password=123456spring.datasource.secondary.driver-class-name=com.mysql.cj.jdbc.Driver說明與注意:多數據源配置的時候,與單數據源不同點在於spring.datasource
  • Spring boot 基於註解方式配置datasource
    Spring boot 基於註解方式配置datasourceXml配置我們先來回顧下,使用xml配置數據源。步驟:先加載資料庫相關配置文件;配置數據源;配置sqlSessionFactory,注入數據源具體如下:一:設置數據配置信息文件先在spring的配置文件中,加載資料庫配置文件<!
  • SpringBoot集成mybatis-plus
    <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId></dependency><dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter