有可能提供任意档案。归结为使用端点 /{name}/{profile}/{label}/{path} 同 {path} 是实际的文件名...所以例如 /a-bootiful-client/default/master/myjson.json 会给你文件内容。但是,默认情况下,响应的内容类型不会 application/json 但 text/html;charset=UTF-8 。
/{name}/{profile}/{label}/{path}
{path}
/a-bootiful-client/default/master/myjson.json
application/json
text/html;charset=UTF-8
但它也适用于“Accept:application / json”:
curl -H "Accept: application/json" http://localhost:8888/a-bootiful-client/default/master/a-bootiful-client.json { "propName":"propValue" }
请参阅此处的文档: http://cloud.spring.io/spring-cloud-static/spring-cloud-config/1.4.3.RELEASE/single/spring-cloud-config.html#_serving_plain_text
以来 yaml 是一个子集 Json ,你可以存储一个 Json 里面的内容 Yaml 文件。
yaml
Json
Yaml
json
properties
我在将现有Node.js应用程序集成到配置服务时测试了这种方法,其中所有配置都在其中 .json 文件。所以,我只是重命名了所有这些并添加到Config Repo中。
.json
public class JsonPropertySourceLoader implements PropertySourceLoader { private static final String JSON = "json"; @Override public final String[] getFileExtensions() { return new String[] { JSON }; } @Override public PropertySource<?> load(final String name, final Resource resource, final String profile) { final Map<String, Object> source = process(resource); return new MapPropertySource(name, source); } @SuppressWarnings("unchecked") private Map<String, Object> process(final Resource resource) { Map<String, Object> map = null; try { map = new ObjectMapper() .readValue(resource.getFile(), LinkedHashMap.class); } catch (IOException e) { throw new RuntimeException(e); } return map; } }