springboot環(huán)境切換失效
概述
最近在使用-Dspring.profiles.active=te 來切換spring-boot的環(huán)境時,發(fā)現(xiàn)日志打印的是:
1
2
|
...ApplicationStartUp - The following profiles are active: de |
也就是說,參數(shù)失效了。
debug調(diào)試時,發(fā)現(xiàn)spring-boot讀取的也是de,不是te。
解決
下載了一個新的tomcat,然后重新發(fā)布程序,設(shè)置參數(shù),啟動,發(fā)現(xiàn)環(huán)境正常切換了過來。
SpringBoot多數(shù)據(jù)源切換無效(不切換)
SpringBoot的多數(shù)據(jù)源實(shí)現(xiàn)以實(shí)現(xiàn)AbstractRoutingDataSource#determineCurrentLookupKey()來達(dá)到多個數(shù)據(jù)源動態(tài)切換的目的。
網(wǎng)上有很多的文章可以獲取具體方法,就不在講了。
項(xiàng)目中需要用到多數(shù)據(jù)源MySQL和SQLServer兩個數(shù)據(jù)庫,系統(tǒng)要保持兩個數(shù)據(jù)庫的數(shù)據(jù)同步,就需要來回切數(shù)據(jù)源來操作數(shù)據(jù)庫。
剛寫好了數(shù)據(jù)從MySQL同步到SQLServer中的代碼,測試發(fā)現(xiàn)數(shù)據(jù)源不能切換到SQLServer數(shù)據(jù)庫連接,排查問題~~省略n多個小時后,
源碼解析等理論就不寫了(重要的是不會寫)直接上修改方案
CSDN查到的方案有
- 數(shù)據(jù)源切換和事務(wù)的注入順序問題,像下面這樣的,加入@Order注解。測試無效(可能我搭的架構(gòu)有問題)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
@Aspect @Slf4j @Order (- 1 ) // 保證優(yōu)先級 @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ù)源,反正我沒找到怎么個用法,所以沒有測試。
- 還有下面的這種寫法。測試有效的
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的數(shù)據(jù)對象:[{}]" , 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); } |
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://blog.csdn.net/limenghua9112/article/details/79608257