欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決springboot環(huán)境切換失效的問題

 更新時(shí)間:2021年09月22日 09:11:45   作者:快樂檸檬  
這篇文章主要介紹了解決springboot環(huán)境切換失效的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

springboot環(huán)境切換失效

概述

最近在使用-Dspring.profiles.active=te 來切換spring-boot的環(huán)境時(shí),發(fā)現(xiàn)日志打印的是:

...ApplicationStartUp - 
The following profiles are active: de

也就是說,參數(shù)失效了。

debug調(diào)試時(shí),發(fā)現(xiàn)spring-boot讀取的也是de,不是te。

解決

下載了一個(gè)新的tomcat,然后重新發(fā)布程序,設(shè)置參數(shù),啟動(dòng),發(fā)現(xiàn)環(huán)境正常切換了過來。

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

SpringBoot的多數(shù)據(jù)源實(shí)現(xiàn)以實(shí)現(xiàn)AbstractRoutingDataSource#determineCurrentLookupKey()來達(dá)到多個(gè)數(shù)據(jù)源動(dòng)態(tài)切換的目的。

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

項(xiàng)目中需要用到多數(shù)據(jù)源MySQL和SQLServer兩個(gè)數(shù)據(jù)庫,系統(tǒng)要保持兩個(gè)數(shù)據(jù)庫的數(shù)據(jù)同步,就需要來回切數(shù)據(jù)源來操作數(shù)據(jù)庫。

剛寫好了數(shù)據(jù)從MySQL同步到SQLServer中的代碼,測(cè)試發(fā)現(xiàn)數(shù)據(jù)源不能切換到SQLServer數(shù)據(jù)庫連接,排查問題~~省略n多個(gè)小時(shí)后,

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

CSDN查到的方案有

  • 數(shù)據(jù)源切換和事務(wù)的注入順序問題,像下面這樣的,加入@Order注解。測(cè)試無效(可能我搭的架構(gòu)有問題)
@Aspect
@Slf4j
@Order(-1) // 保證優(yōu)先級(jí)
@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)層切換數(shù)據(jù)源,反正我沒找到怎么個(gè)用法,所以沒有測(cè)試。
  • 還有下面的這種寫法。測(cè)試有效的
@DataSource(DatasourceEnum.DB3)
   public int insertSelective( String hbNo, ) throws Exception{
       CcpHeaderSqlServer record = new CcpHeaderSqlServer();      
       if (log.isDebugEnabled()) {
           log.debug("同步到SQLServer的數(shù)據(jù)對(duì)象:[{}]", record);
       }    
    ......
    
    // 這種調(diào)用保存數(shù)據(jù)的方法,有效切換數(shù)據(jù)源
       XXXService service = SpringContextHolder.getBean(XXXService.class);
       return service.saveHeader(record);
   }
   @DataSource(DatasourceEnum.DB3)
   public int saveHeader(XXXEntity record) {
       return xxxMapper.insertSelective(record);
   }

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 深入淺析springsecurity入門登錄授權(quán)

    深入淺析springsecurity入門登錄授權(quán)

    SpringSecurity為我們提供了基于注解的權(quán)限控制方案,這也是我們項(xiàng)目中主要采用的方式,我們可以使用注解去指定訪問對(duì)應(yīng)的資源所需的權(quán)限,這篇文章主要介紹了springsecurity入門登錄授權(quán),需要的朋友可以參考下
    2024-05-05
  • Java中的CurrentHashMap源碼詳解

    Java中的CurrentHashMap源碼詳解

    這篇文章主要介紹了Java中的CurrentHashMap源碼詳解,HashMap是數(shù)組+鏈表構(gòu)成的,JDK1.8之后,加入了紅黑樹,HashMap默認(rèn)數(shù)組初始化大小為16,如果瞎設(shè)置數(shù)字,它會(huì)自動(dòng)調(diào)整成2的倍數(shù),需要的朋友可以參考下
    2023-12-12
  • Spring Cache與Redis結(jié)合的使用方式

    Spring Cache與Redis結(jié)合的使用方式

    這篇文章主要介紹了Spring Cache與Redis結(jié)合的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java設(shè)計(jì)模式之觀察者模式

    Java設(shè)計(jì)模式之觀察者模式

    這篇文章主要介紹了Java設(shè)計(jì)模式之觀察者模式,觀察者模式,是一種行為性模型,又叫發(fā)布-訂閱模式,他定義對(duì)象之間一種一對(duì)多的依賴關(guān)系,使得當(dāng)一個(gè)對(duì)象改變狀態(tài),則所有依賴于它的對(duì)象都會(huì)得到通知并自動(dòng)更新,需要的朋友可以參考下
    2023-11-11
  • Java棧的應(yīng)用之括號(hào)匹配算法實(shí)例分析

    Java棧的應(yīng)用之括號(hào)匹配算法實(shí)例分析

    這篇文章主要介紹了Java棧的應(yīng)用之括號(hào)匹配算法,結(jié)合實(shí)例形式分析了Java使用棧實(shí)現(xiàn)括號(hào)匹配算法的相關(guān)原理、操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2020-03-03
  • 2018年java技術(shù)面試題整理

    2018年java技術(shù)面試題整理

    小編為大家整理了2018年最新的關(guān)于java技術(shù)相關(guān)的面試題,以及給出了最簡(jiǎn)簡(jiǎn)答方式,學(xué)習(xí)下吧。
    2018-02-02
  • 在SpringBoot中使用JWT的實(shí)現(xiàn)方法

    在SpringBoot中使用JWT的實(shí)現(xiàn)方法

    這篇文章主要介紹了在SpringBoot中使用JWT的實(shí)現(xiàn)方法,詳細(xì)的介紹了什么是JWT和JWT實(shí)戰(zhàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12
  • 基于javamelody監(jiān)控springboot項(xiàng)目過程詳解

    基于javamelody監(jiān)控springboot項(xiàng)目過程詳解

    這篇文章主要介紹了基于javamelody監(jiān)控springboot項(xiàng)目過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • SpringBoot中優(yōu)化Undertow性能的方法總結(jié)

    SpringBoot中優(yōu)化Undertow性能的方法總結(jié)

    Undertow是一個(gè)采用 Java 開發(fā)的靈活的高性能Web服務(wù)器,提供包括阻塞和基于NIO的非堵塞機(jī)制,本文將給大家介紹SpringBoot中優(yōu)化Undertow性能的方法,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下
    2024-08-08
  • Java8中如何通過方法引用獲取屬性名詳解

    Java8中如何通過方法引用獲取屬性名詳解

    這篇文章主要給大家介紹了關(guān)于Java8中如何通過方法引用獲取屬性名的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09

最新評(píng)論