SpringCloud学习(四)整合Nacos实现配置中心
一、为什么选用Nacos做配置中心
二、整合Nacos做配置中心
项目整合基于
1. 完善feign-provider项目
1. 在pom.xml 增加nacos 配置中心依赖
<!-- nacos-config 依赖--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
2. 新增项目配置文件bootstrap.yml指定nacos配置文件名
注意:
注意这里使用bootstrap.yml而非application.yml,避免applicaton.yml后加载的时候被nacos配置覆盖,也需要把application.yml中不会变化的也移到bootstrap.yml中。
SpringBoot读取配置文件顺序:
bootstrap.yml>bootstrap.yaml>bootstrap.properties>nacos的配置>application.yml>application.yaml>application.properties
bootstrap.yml内容如下:
spring: application: name: feign-provider-8081 cloud: nacos: discovery: server-addr: http://localhost:8848 config: file-extension: yaml # 必须修改成yaml group: DEFAULT_GROUP # 缺省即可 prefix: feign-provider # 缺省即可
3. 打开nacos管理控制台添加配置
Data ID的格式为:
${prefix}-${spring.profiles.active}.${file-extension}
- prefix 默认spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置
- file-extension默认properties,比如我这里使用的是yaml,那么更改spring.cloud.nacos.config.file-extension= yaml
- Group默认DEFAULT_GROUP,也可以通过配置项 spring.cloud.nacos.config.group来配置
4. 添加接口来测试读取配置信息,并添加动态刷新配置的注解@RefreshScope
@RefreshScope @RestController @RequestMapping("/oauth") public class VerifyController { @Value("${rsa.publicKey}") public String publicKey; @GetMapping("/publicKey") public Result getPublicKey(){ return Result.success(this.publicKey); } }
5. 启动服务后第一次读取配置信息
6. 在nacos配置中修改publicKey的值为888888,然后发布
再请求下。
三、总结
相较于eureka整合SpringCloud Config方便了很多…
上一篇:
IDEA上Java项目控制台中文乱码