NACOS动态配置
copy自:NACOS动态配置
1、项目引入POM包
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>2.2.2.RELEASE</version> </dependency>
2、yml配置NACOS系统信息
- 新增bootstrap.yml文件,配置信息写在该文件里。(问题:如放在application.yml会导致项目启动报找不到配置属性错误,原因:application.yml与bootstrap.yml加载顺序优先级问题。)
bootstrap.yml(bootstrap.properties)用来程序引导时执行,应用于更加早期配置信息读取,如可以使用来配置application.yml中使用到参数等
application.yml(application.properties) 应用程序特有配置信息,可以用来配置后续各个模块中需使用的公共参数等。
加载顺序:bootstrap.yml > application.yml > application-dev(prod).yml > ...
- 在bootstrap.yml中新增application.name和nacos的config信息。
spring: application: name: order-service-demo cloud: nacos: config: server-addr: localhost:8848 file-extension: properties # 此处为配置使用的后缀名 group: DEFAULT_GROUP
3、NACOS系统新增动态配置参数
登录NOCAS系统在配置列表页面,点击新增配置输入配置信息,本文选择的是properties配置文件类型。
DataID格式:${prefix}-${spring.profiles.active}.${file-extension}
prefix:默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
spring.profiles.active:即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
file-exetension:为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。
4、代码配置
在使用配置的controller中新增 @RefreshScope 注解,以及在注入属性上新增 @Value("${Key名称}") 注解。访问网站储呈现
方式二:JAVA SDK方式获取配置
1、项目引入POM包
<dependency> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-client</artifactId> <version>2.0.0-ALPHA.2</version> </dependency>
2、NACOS系统新增动态配置参数
登录NOCAS系统在配置列表页面,点击新增配置输入配置信息,本文选择的是json配置文件类型。
DataID格式:${prefix}-${spring.profiles.active}.${file-extension}
prefix:默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
spring.profiles.active:即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
file-exetension:为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。
3、代码段
获取NACOS配置服务,根据Data ID获取配置。
获取到的配置信息,接口返回呈现。