您的位置:首页 > Web前端 > BootStrap

springcloud-config client配置文件为什么要用bootstrap命名

2016-11-24 18:21 2306 查看
搭建srpingcloud-config server端的时候,配置文件可以用application.yml 或 application.properties

但是为什么在config client端却要使用bootstrap.yml或bootstrap.properties呢?

因为bootstrap.properties的加载是先于application.properties的。

在springcloud-config的源码包spring-cloud-config-server-1.1.0.RELEASE.jar中的ConfigServerBootstrapConfiguration类中可以看到如下:

/**
* Bootstrap configuration to fetch external configuration from a (possibly remote)
* {@link EnvironmentRepository}. Off by default because it can delay startup, but can be
* enabled with <code>spring.cloud.config.server.bootstrap=true</code>. This would be
* useful, for example, if the config server were embedded in another app that wanted to
* be configured from the same repository as all the other clients.
*
* @author Dave Syer
* @author Roy Clarkson
*/
@Configuration
public class ConfigServerBootstrapConfiguration {

@ConditionalOnProperty("spring.cloud.config.server.bootstrap")
@Import(EnvironmentRepositoryConfiguration.class)
protected static class LocalPropertySourceLocatorConfiguration {

@Autowired
private EnvironmentRepository repository;

@Autowired
private ConfigClientProperties client;

@Autowired
private ConfigServerProperties server;

@Bean
public EnvironmentRepositoryPropertySourceLocator environmentRepositoryPropertySourceLocator() {
return new EnvironmentRepositoryPropertySourceLocator(this.repository,
this.client.getName(), this.client.getProfile(), getDefaultLabel());
}

private String getDefaultLabel() {
if (StringUtils.hasText(this.client.getLabel())) {
return this.client.getLabel();
}
else if (StringUtils.hasText(this.server.getDefaultLabel())) {
return this.server.getDefaultLabel();
}
return null;
}

}

}
@ConditionalOnProperty("spring.cloud.config.server.bootstrap")

看该注解的源码。默认是false的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: