MybatisPlus 多數(shù)據(jù)源切換@DS注解失效問(wèn)題解決
在業(yè)務(wù)開(kāi)發(fā)中使用到了多數(shù)據(jù)源,遇到了@DS注解失效問(wèn)題,有兩個(gè)場(chǎng)景使用到同一個(gè)@DS的查詢方法,一個(gè)正常,另一個(gè)失效。
偽代碼如下:
@Service
public class UserService {
@Autowired
private OtherService other;
// 正常
public void writeAndRead() {
other.query();
}
// 失效
@Transactional
public void writeAndRead() {
other.query();
userMapper.insert(...);
}
}
@DS("slave")
@Service
public class OtherService {
public void query() {
mapper.selectList(...);
}
}場(chǎng)景一和二正常都打印了@DS中的key

后續(xù)排查發(fā)現(xiàn)是失效場(chǎng)景中使用了事務(wù)注解 @Transactional,事務(wù)注解會(huì)綁定數(shù)據(jù)源,導(dǎo)致@DS失效,后續(xù)解決方案是在使用@DS切換數(shù)據(jù)源的類方法上加入一下代碼:
@DS("slave")
@Service
public class OtherService {
// 非事務(wù)性地執(zhí)行
@Transactional(propagation = Propagation.NOT_SUPPORTED)
public void query() {
mapper.selectList(...);
}
}到此這篇關(guān)于MybatisPlus 多數(shù)據(jù)源切換@DS注解失效問(wèn)題解決的文章就介紹到這了,更多相關(guān)MybatisPlus @DS注解失效內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MyBatisPlus實(shí)現(xiàn)自動(dòng)填充字段的實(shí)踐
MyBatis-Plus自動(dòng)填充功能可以在插入或更新數(shù)據(jù)時(shí)自動(dòng)填充字段,如創(chuàng)建時(shí)間和更新時(shí)間,本文就來(lái)詳細(xì)的介紹一下,具有一定的參考價(jià)值,感興趣的可以了解一下2024-10-10
Spring Boot 中的 @EnableDiscoveryClient 注解
@EnableDiscoveryClient 注解是 Spring Boot 應(yīng)用程序注冊(cè)到服務(wù)注冊(cè)中心的關(guān)鍵注解,這篇文章主要介紹了Spring Boot 中的 @EnableDiscoveryClient 注解,需要的朋友可以參考下2023-07-07
SpringBoot項(xiàng)目集成Smart-Doc的實(shí)戰(zhàn)指南
Smart-Doc是一款強(qiáng)大的基于Java的API文檔生成工具,它通過(guò)對(duì)接口源代碼進(jìn)行分析來(lái)生成全面而準(zhǔn)確的文檔,完全不需要對(duì)代碼進(jìn)行任何注入,下面我們看看如何在SpringBoot項(xiàng)目中集成Smart-Doc吧2025-10-10
Java 如何使用@Autowired注解自動(dòng)注入bean
這篇文章主要介紹了Java 使用@Autowired注解自動(dòng)注入bean的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
SpringBoot實(shí)現(xiàn)基于URL和IP的訪問(wèn)頻率限制
在現(xiàn)代?Web?應(yīng)用中,接口被惡意刷新或暴力請(qǐng)求是一種常見(jiàn)的攻擊手段,為了保護(hù)系統(tǒng)資源,需要對(duì)接口的訪問(wèn)頻率進(jìn)行限制,下面我們就來(lái)看看如何使用?Spring?Boot?實(shí)現(xiàn)基于?URL?和?IP?的訪問(wèn)頻率限制吧2025-01-01
解決spring boot啟動(dòng)掃描不到自定義注解的問(wèn)題
這篇文章主要介紹了解決spring boot啟動(dòng)掃描不到自定義注解的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09
Spring Boot開(kāi)啟遠(yuǎn)程調(diào)試的方法
這篇文章主要介紹了Spring Boot開(kāi)啟遠(yuǎn)程調(diào)試的方法,幫助大家更好的理解和使用Spring Boot框架,感興趣的朋友可以了解下2020-10-10

