nacos配置中心 1)修改“gulimall-coupon”模块 在common模块中 添加pom依赖:
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-config
创建bootstrap.properties文件,该配置文件会优先于“application.yml”加载。
spring.application.name=gulimall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
传统方式配置方式
为了详细说明config的使用方法,先来看原始的方式 创建“application.properties”配置文件,添加如下配置内容:
coupon.user.name="zhangsan"
coupon.user.age=30
修改“com.bigdata.gulimall.coupon.controller.CouponController”文件,添加如下内容:
@Value("${coupon.user.name}")
private String name;
@Value("${coupon.user.age}")
private Integer age;
@RequestMapping("/test")
public R getConfigInfo(){
return R.ok().put("name",name).put("age",age);
}
启动“gulimall-coupon”服务:
访问:http://localhost:7000/coupon/coupon/test>
这样做存在的一个问题,如果频繁的修改application.properties,在需要频繁重新打包部署。下面我们将采用Nacos的配置中心来解决这个问题。
nacos config 在项目启动的时候, 有打印如下的日志 该日志说的是会从gulimall-coupon.properties 中获取配置, 默认的是应用名称的properties的文件. 在nacos的配置中心中, 根据该名称新建配置 1、在Nacos注册中心中,点击“配置列表”,添加配置规则:
DataID:gulimall-coupon 配置格式:properties
文件的命名规则为: s p r i n g . a p p l i c a t i o n . n a m e − {spring.application.name}- spring.application.name−{spring.profiles.active}.${spring.cloud.nacos.config.file-extension} ${spring.application.name}:为微服务名 ${spring.profiles.active}:指明是哪种环境下的配置,如dev、test或info ${spring.cloud.nacos.config.file-extension}:配置文件的扩展名,可以为properties、yml等
2、查看配置: 3、修改“com.bigdata.gulimall.coupon.controller.CouponController”类,添加“@RefreshScope”注解
@RestController
@RequestMapping("coupon/coupon")
@RefreshScope
public class CouponController {
这样都会动态的从配置中心读取配置. 4、访问:http://localhost:7000/coupon/coupon/test
能够看到读取到了nacos 中的最新的配置信息,并且在指明了相同的配置信息时,配置中心中设置的值优先于本地配置。
总结配置中心的使用方法
1.引入配置中心的依赖 nacos-config 2.创建一个boostrap.propertis
在这个propertis中指定应用的名称, nocas的地址
3.在nacos的配置列表中,新建立一个配置, 新建立配置的默认名称为 应用名称.properties 4.根据需求添加需要的配置
5.在代码中设置动态获取配置
a.在获取配置的类上加上@RefreshScope注解,代表动态获取并刷新配置
b.@Value("${配置的名称}") 获取对应的配置
c.配置中心中设置的值优先于本地配置。