日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

开源框架springboot-mybatis-wr-separation实现springboot+mybatis读写分离

發(fā)布時(shí)間:2024/3/12 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 开源框架springboot-mybatis-wr-separation实现springboot+mybatis读写分离 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近做springboot+mybatis的項(xiàng)目想要用到讀寫(xiě)分離,查了一圈發(fā)現(xiàn)大家都是自己寫(xiě)的,沒(méi)用通用現(xiàn)成的讀寫(xiě)分離架構(gòu),因此就寫(xiě)了一個(gè)比較簡(jiǎn)單好用的小插件,來(lái)幫助大家簡(jiǎn)單的實(shí)現(xiàn)讀寫(xiě)分離的功能,項(xiàng)目已開(kāi)源并已經(jīng)上傳到maven中央倉(cāng)庫(kù),歡迎提出寶貴意見(jiàn),共同改進(jìn)。

springboot-mybatis-wr-separation

介紹
springboot-mybatis-wr-separation 是一個(gè)基于maven的項(xiàng)目,依賴(lài)springboot和mybatis,提供讀寫(xiě)分離的功能的開(kāi)源項(xiàng)目插件

軟件架構(gòu)
1. 使用jdk1.7
2. 依賴(lài)spring-boot-starter-parent(1.5.4.RELEASE)/spring-boot-starter-aop/mybatis-spring-boot-starter(1.3.1)

部署說(shuō)明

1. 直接進(jìn)行jar包依賴(lài)即可

<dependency><groupId>com.gitee.sunchenbin</groupId><artifactId>springboot-mybatis-wr-separation</artifactId><version>0.0.4.RELEASE</version></dependency>

2. application.properties中需要做如下配置

? ? ? ? (1) mybatis的配置

mybatis.mapperLocations=classpath:sql-mapper/**/*.xmlmybatis.typeAliasesPackage=com.xxx.api.xxx.model,com.xxx.api.xxx.command

? ? ? ? (2) 讀庫(kù)和寫(xiě)庫(kù)的配置? ?

spring.datasource.write.url=jdbc:postgresql://127.0.0.1/db-masterspring.datasource.write.username=rootspring.datasource.write.password=123456spring.datasource.write.driver-class-name=org.postgresql.Driverspring.datasource.read.url=jdbc:postgresql://127.0.0.1/db-slavespring.datasource.read.username=rootspring.datasource.read.password=123456spring.datasource.read.driver-class-name=org.postgresql.Driver

? ? ? ??(3) 讀寫(xiě)分離切點(diǎn)的expression表達(dá)式(建議切manager或者service)? ?

wr.separation.pointcut.expression=execution(public * com.xxx..*.*(..))


3. 應(yīng)用插件的springboot項(xiàng)目需要配置掃碼插件的包,即@ComponentScan需要配置對(duì)"com.gitee.sunshine.*"包路徑的掃描

使用說(shuō)明

1.?本插件提供一個(gè)注解,@ReadDB(走讀庫(kù)),如果不打注解默認(rèn)走寫(xiě)庫(kù)

2.?注解適用范圍,必須是spring管理的bean的方法,注解不支持打在接口方法上,通常來(lái)說(shuō)建議在manager層service層的方法上使用

3.?注解生命周期,為了避免讀庫(kù)寫(xiě)庫(kù)來(lái)回切換,產(chǎn)生的事務(wù)問(wèn)題,這里規(guī)定,當(dāng)前線程只會(huì)使用一個(gè)庫(kù)去執(zhí)行操作,比如a.test1()被調(diào)用時(shí),首先a是被spring管理的類(lèi),并且他在我們配置文件“讀寫(xiě)分離切點(diǎn)表達(dá)式”的范圍內(nèi),那么此時(shí),如果test1()打了注解@ReadDB,那么從此開(kāi)始直到這個(gè)線程結(jié)束了,都使用讀庫(kù),如果沒(méi)有打注解,那么從此開(kāi)始知道整個(gè)線程結(jié)束了都使用寫(xiě)庫(kù)。

4.?沒(méi)有被切到的方法如果使用了數(shù)據(jù)庫(kù)操作,默認(rèn)走寫(xiě)庫(kù)

springboot-mybatis-wr-separation插件開(kāi)源地址

  • 碼云地址:https://gitee.com/sunchenbin/springboot-mybatis-wr-separation

  • 代碼下載地址:https://git.oschina.net/sunchenbin/springboot-mybatis-wr-separation.git

  • 總結(jié)

    以上是生活随笔為你收集整理的开源框架springboot-mybatis-wr-separation实现springboot+mybatis读写分离的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。