SpringCloud Alibaba Nacos作为配置中心(三)----------yml格式配置文件

采用yml配置文件

客户端配置,在bootstrap.properties文件中spring.cloud.nacos.config.file-extension属性声明从配置中心中读取的配置文件格式

该配置的缺省值为properties,即默认是读取properties格式的配置文件。当客户端没有配置该属性,并且在nacos server添加的是yml格式的配置文件,则给客户端会读取不到配置文件,导致启动失败。

因而在在bootstrap.properties文件中添加

spring.cloud.nacos.config.file-extension=yml

或者

spring.cloud.nacos.config.file-extension=yaml

注:在客户端和server端对文件格式的声明要一致,例如在客户端声明的是yml,则server端添加配置文应该是${application.name}.yml,若写成${application.name}.yaml,则会找不到配置文件。

以yml为例:

bootstrap.properties 文件添加配置后:

spring.application.name=nacos-config-client
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.file-extension=yml

 SpringCloud Alibaba Nacos作为配置中心(三)----------yml格式配置文件_第1张图片

server端添加配置文件nacos-config-client.yml 

SpringCloud Alibaba Nacos作为配置中心(三)----------yml格式配置文件_第2张图片

再创建yaml格式配置文件nacos-config-client.yaml 

SpringCloud Alibaba Nacos作为配置中心(三)----------yml格式配置文件_第3张图片

此时server端有如下三个配置文件

SpringCloud Alibaba Nacos作为配置中心(三)----------yml格式配置文件_第4张图片

修改TestController,修改后如下:

package com.maoqu.nacos.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RefreshScope
@RestController
public class TestController {

	@Value("${test.name}")
	private String name;
	@Value("${test.age}")
	private int age;
	
	@RequestMapping("/test")
	public String test(){
		return "name:" + name + " / " + "age" + age;
	}
}

启动客户端:访问http://localhost:8080/test 得到如下

显然是配置中心的 nacos-config-client.yml 生效。

修改bootstrap.properties文件中的spring.cloud.nacos.config.file-extension=yaml

重启客户端,访问http://localhost:8080/test 得到如下

显然,  nacos-config-client.yaml生效。

你可能感兴趣的:(springcloud,alibaba)