为什么引入了配置管理?
微服务内重复配置过多,维护成本较高
业务配置经常变动,每次修改都要重启服务
网关路由配置写死,如果改写需要重启网关
配置文件共享
首先在nacos中创建一个配置:
在配置管理的配置列表中,右边点击加号
填写dataId,修改配置内容,支持使用${value}读取application.yml中的数据
载入依赖
<!--nacos配置管理--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> <!--读取bootstrap文件--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency>
在springcloud项目的res中添加bootstrap.yml
spring: application: name: user-service # 微服务名称 profiles: active: dev cloud: nacos: server-addr: 192.168.88.95:8848 config: file-extension: yaml shared-configs: - data-id: jdbc.yaml - dataId: log.yaml - dataId: swagger.yaml
修改application.yml
server: port: 8086 hm: db: database: hm-pay swagger: title: 黑马商城支付接口文档 description: "黑马商城支付接口文档" resname: pay
配置热更新(这里千万要遵循老师指导:能cv绝不手写,不然你就要像我一样一个错误查一个小时最后发现是单词拼错了)
首先在模块内创建一个属性读取类来读取需要热更新的属性
@Data @Component @ConfigurationProperties(prefix = "hm.cart") public class CartProperties { private Integer maxAmount; }
将配置添加至nacos中,文件名需要遵守的格式为
[服务名]-[spring.active.profile].[后缀名]spring.active.profile
,可以省略,则所有profile共享该配置
hm: cart: maxAmount: 1
随后该参数直接在nacos中改动即可,不需要重启服务器就可以实现参数变动。在console中我们可以看到maxAmount改动后生效了
标签:服务,spring,配置,配置管理,nacos,yaml,cloud From: https://www.cnblogs.com/kun1790051360/p/18158197