nacos配置在代码中引用的方法讲解
jjw_zyfx 人气:01、在代码的模块服务中安装nacos 配置依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
2、在nacos配置中心中进行服务配置 注意不是模块名,是服务名称,即在bootstrap.yaml中配置的服务名称
3、在模块的bootstrap.yml文件中添加配置信息
# 注意前边是 spring cloud nacos config: server-addr: 127.0.0.1:8848 # 即服务发现的地址 # 如果不是public则需要再加一行指定具体的命名空间。
4、使用@Value(${})使用配置
@Value("${common.name}") private String common_name; @GetMapping(value = "/configs") public String getValue(){ return common_name; }
获取动态的配置信息
代码如下:
@Value("${common.name}") // 这种方法不能获取动态的配置信息 private String common_name; @Autowired private ConfigurableApplicationContext applicationContext; // 这种方式可以获取动态的配置信息 @GetMapping(value = "/configs") public String getValue(){ // return common_name; return applicationContext.getEnvironment().getProperty("common.name"); }
扩展配置
1、首先在nacos中配置两个拓展的配置文件 配置文件1
配置文件2
注意这两个文件的配置内容的变化 2、在bootstrap.yaml文件中添加如下配置
config: server-addr: 127.0.0.1:8848 file-extension: yaml # 原配置 或者说是主配置 group: DEFAULT_GROUP ext-config[0]: # 拓展配置1 data-id: ext-config-common01.yaml group: COMMON_GROUP refresh: true # 动态刷新 ext-config[1]: # 拓展配置2 data-id: ext-config-common02.yaml group: COMMON_GROUP refresh: true
3、代码引用:
@Autowired private ConfigurableApplicationContext applicationContext; @GetMapping(value = "/config") public String getValue(){ String name = applicationContext.getEnvironment().getProperty("common.name"); String addr = applicationContext.getEnvironment().getProperty("common.addr"); return name+addr; }
4、最终的输出结果:
5、对结果的总结:
5.1、如果主配置中配置的内容和拓展配置的内容重复则按主配置的配置
5.2、如果拓展配置中的内容和另一个拓展配置中的内容重复,则按下标大的配置作为最终的配置
加载全部内容