在开发网关动态获取Nacos上配置的路由的时候, 网上很多参考的代码都是通过注入Nacos提供的NacosConfigProperties
后, 使用该类获取configService
添加监听器, 如下图代码所示:
但是出现个问题, 比较新的版本的Nacos包中已经没有
NacosConfigProperties
类了, 还有诸如使用@NacosInjected
方式注入等都没有生效.于是我在查阅了一些资料后集成成功, 在此记录一下代码.
开发环境
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多数据源相关的依赖 -->
<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
的静态方法来构建出来:
网友评论