一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 解決springboot環境切換失效的問題

解決springboot環境切換失效的問題

2022-01-11 00:58快樂檸檬 Java教程

這篇文章主要介紹了解決springboot環境切換失效的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

springboot環境切換失效

概述

最近在使用-Dspring.profiles.active=te 來切換spring-boot的環境時,發現日志打印的是:

?
1
2
...ApplicationStartUp -
The following profiles are active: de

也就是說,參數失效了。

debug調試時,發現spring-boot讀取的也是de,不是te。

解決

下載了一個新的tomcat,然后重新發布程序,設置參數,啟動,發現環境正常切換了過來。

SpringBoot多數據源切換無效(不切換)

SpringBoot的多數據源實現以實現AbstractRoutingDataSource#determineCurrentLookupKey()來達到多個數據源動態切換的目的。

網上有很多的文章可以獲取具體方法,就不在講了。

項目中需要用到多數據源MySQL和SQLServer兩個數據庫,系統要保持兩個數據庫的數據同步,就需要來回切數據源來操作數據庫。

剛寫好了數據從MySQL同步到SQLServer中的代碼,測試發現數據源不能切換到SQLServer數據庫連接,排查問題~~省略n多個小時后,

源碼解析等理論就不寫了(重要的是不會寫)直接上修改方案

CSDN查到的方案有

  • 數據源切換和事務的注入順序問題,像下面這樣的,加入@Order注解。測試無效(可能我搭的架構有問題)
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@Aspect
@Slf4j
@Order(-1) // 保證優先級
@Component
public class DatasourceAspect {
    @Pointcut("@within(DataSource)|| @annotation(DataSource)")
    public void pointcut() {
    }
    @Before("pointcut() && @annotation(dataSource)")
    public void before(DataSource dataSource) {
        DatasourceContextHolder.setDatasource(dataSource.value().getDbName());
    }
    @After("pointcut()")
    public void after() {
        DatasourceContextHolder.clear();
    }
}
  • Mapper(Dao)層切換數據源,反正我沒找到怎么個用法,所以沒有測試。
  • 還有下面的這種寫法。測試有效的
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@DataSource(DatasourceEnum.DB3)
   public int insertSelective( String hbNo, ) throws Exception{
       CcpHeaderSqlServer record = new CcpHeaderSqlServer();     
       if (log.isDebugEnabled()) {
           log.debug("同步到SQLServer的數據對象:[{}]", record);
       }   
    ......
    
    // 這種調用保存數據的方法,有效切換數據源
       XXXService service = SpringContextHolder.getBean(XXXService.class);
       return service.saveHeader(record);
   }
   @DataSource(DatasourceEnum.DB3)
   public int saveHeader(XXXEntity record) {
       return xxxMapper.insertSelective(record);
   }

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/limenghua9112/article/details/79608257

延伸 · 閱讀

精彩推薦
  • Java教程20個非常實用的Java程序代碼片段

    20個非常實用的Java程序代碼片段

    這篇文章主要為大家分享了20個非常實用的Java程序片段,對java開發項目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程Java實現搶紅包功能

    Java實現搶紅包功能

    這篇文章主要為大家詳細介紹了Java實現搶紅包功能,采用多線程模擬多人同時搶紅包,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關于小米推送Java代碼,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧...

    富貴穩中求8032021-07-12
  • Java教程Java8中Stream使用的一個注意事項

    Java8中Stream使用的一個注意事項

    最近在工作中發現了對于集合操作轉換的神器,java8新特性 stream,但在使用中遇到了一個非常重要的注意點,所以這篇文章主要給大家介紹了關于Java8中S...

    阿杜7482021-02-04
  • Java教程xml與Java對象的轉換詳解

    xml與Java對象的轉換詳解

    這篇文章主要介紹了xml與Java對象的轉換詳解的相關資料,需要的朋友可以參考下...

    Java教程網2942020-09-17
  • Java教程Java BufferWriter寫文件寫不進去或缺失數據的解決

    Java BufferWriter寫文件寫不進去或缺失數據的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進去或缺失數據的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程升級IDEA后Lombok不能使用的解決方法

    升級IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級,尋思已經有好久沒有升過級了。升級完畢重啟之后,突然發現好多錯誤,本文就來介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
主站蜘蛛池模板: 香蕉草莓视频 | 国产青草亚洲香蕉精品久久 | 青草草视频在线观看 | 日日视频| 亚洲精品永久免费 | 午夜一区二区三区 | 青青草国产一区二区三区 | 国产亚洲自愉自愉 | 亚洲欧美一区二区三区不卡 | 麻豆网站在线免费观看 | 日本高清视频在线的 | 日韩影院在线观看 | 91最新入口 | 丝袜足控免费网站xx动漫漫画 | 久久成人精品免费播放 | 国产欧美一区二区成人影院 | 91久久国产视频 | 男男按摩1069gⅴ | 亚洲国产综合久久精品 | 亚洲欧美久久久久久久久久爽网站 | 久热人人综合人人九九精品视频 | 特级毛片免费观看视频 | 精品性久久 | 天堂漫画破解版 | 亚洲日本中文字幕天天更新 | 国产精品久久国产三级国电话系列 | a黄毛片 | 精品国产乱码久久久久久免费 | 91porny.首页| 91日本 | 青草国产福利视频免费观看 | 白鹿扒开内裤露出尿孔 | 白丝校花掀起短裙呻吟小说 | 91精品国产91久久久久久 | 91理论片午午伦夜理片久久 | 扒开尿口 | 动漫白丝袜美女羞羞 | 成人免费视频一区二区 | 国产成人免费片在线观看 | 免费一级毛片在线播放放视频 | 免费在线看片网站 |