1、pom.xml引入Nacos Conifg Starter
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency>
2、创建一个bootstrap.properties文件,配置文件中配置元数据
spring.application.name=nacos-config
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
3、在Nacos中添加配置
在 nacos 中创建一个 应用名 .properties 配置文件并编写配置
4、动态获取配置
@RefreshScope:动态获取并刷新配置 @Value("${配置项的名}"):获取到配置。 如果配置中心和当前应用的配置文件中都配置了相同的项,优先使用配置中心的配置。
5、配置注意
1)、命名空间:配置隔离; 默认:public(保留空间);默认新增的所有配置都在public空间。 1、开发,测试,生产:利用命名空间来做环境隔离。 注意:在bootstrap.properties;配置上,需要使用哪个命名空间下的配置, spring.cloud.nacos.config.namespace=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 2、每一个微服务之间互相隔离配置,每一个微服务都创建自己的命名空间,只加载自己命名空间下的所有配置 2)、配置集:所有的配置的集合 3)、配置集ID:类似文件名。 Data ID:类似文件名 4)、配置分组: 默认所有的配置集都属于:DEFAULT_GROUP
自动注入:
NacosConfigStarter
实现了
org.springframework.cloud.bootstrap.config.PropertySourceLocator
接口,并将优先级设置成了最高。
在
Spring Cloud
应用启动阶段,会主动从
Nacos Server
端获取对应的数据,并将获取到的
数据转换成
PropertySource
且注入到
Environment
的
PropertySources
属性中,所以使用
@Value
注解也能直接获取
Nacos Server
端配置的内容。
动态刷新:
Nacos Config Starter
默认为所有获取数据成功的
Nacos
的配置项添加了监听功能,在监听
到服务端配置发生变化时会实时触发 org.springframework.cloud.context.refresh.ContextRefresher 的
refresh
方法 。
给类添加
@RefreshScope
或
@ConfigurationProperties
注解。