在開發(fā)網(wǎng)關(guān)動態(tài)獲取Nacos上配置的路由的時候, 網(wǎng)上很多參考的代碼都是通過注入Nacos提供的NacosConfigProperties
后, 使用該類獲取configService
添加監(jiān)聽器, 如下圖代碼所示:
舊版代碼
但是出現(xiàn)個問題, 比較新的版本的Nacos包中已經(jīng)沒有
NacosConfigProperties
類了, 還有諸如使用@NacosInjected
方式注入等都沒有生效.于是我在查閱了一些資料后集成成功, 在此記錄一下代碼.
開發(fā)環(huán)境
SpringBoot: 2.3.12.RELEASE
spring-cloud-alibaba-dependencies: 2.2.6.RELEASE
POM文件
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<!-- 去除Netflix Archaius多數(shù)據(jù)源相關(guān)的依賴 -->
<exclusions>
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-archaius</artifactId>
<version>2.2.6.RELEASE</version>
</exclusion>
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-archaius</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
核心代碼
@Resource
private NacosDiscoveryProperties nacosDiscoveryProperties;
ConfigService configService = NacosFactory.createConfigService(nacosDiscoveryProperties.getNacosProperties());
目前獲取類似configService
, namingService
都可以通過NacosFactory
的靜態(tài)方法來構(gòu)建出來:
NacosFactory