在開(kāi)發(fā)網(wǎng)關(guān)動(dòng)態(tài)獲取Nacos上配置的路由的時(shí)候, 網(wǎng)上很多參考的代碼都是通過(guò)注入Nacos提供的NacosConfigProperties后, 使用該類獲取configService添加監(jiān)聽(tīng)器, 如下圖代碼所示:

舊版代碼
但是出現(xiàn)個(gè)問(wèn)題, 比較新的版本的Nacos包中已經(jīng)沒(méi)有
NacosConfigProperties類了, 還有諸如使用@NacosInjected方式注入等都沒(méi)有生效.于是我在查閱了一些資料后集成成功, 在此記錄一下代碼.
開(kāi)發(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都可以通過(guò)NacosFactory的靜態(tài)方法來(lái)構(gòu)建出來(lái):

NacosFactory