Bootstrap.yml的作用
加載順序
若application.yml 和bootstrap.yml 在同一目錄下:bootstrap.yml 先加載 application.yml后加載,bootstrap.yml 用于應(yīng)用程序上下文的引導(dǎo)階段。bootstrap.yml 由父Spring ApplicationContext加載。
配置區(qū)別
bootstrap是spring cloud的配置上下文加載。由spring-cloud-context包加載。引入依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter</artifactId>
</dependency>
具體加載類
關(guān)鍵代碼
public void onApplicationEvent(ApplicationEnvironmentPreparedEvent event) {
ConfigurableEnvironment environment = event.getEnvironment();
if (!environment.getProperty("spring.cloud.bootstrap.enabled", Boolean.class,
true)) {
return;
}
// don't listen to events in a bootstrap context
if (environment.getPropertySources().contains(BOOTSTRAP_PROPERTY_SOURCE_NAME)) {
return;
}
ConfigurableApplicationContext context = null;
String configName = environment
.resolvePlaceholders("${spring.cloud.bootstrap.name:bootstrap}");
for (ApplicationContextInitializer<?> initializer : event.getSpringApplication()
.getInitializers()) {
if (initializer instanceof ParentContextApplicationContextInitializer) {
context = findBootstrapContext(
(ParentContextApplicationContextInitializer) initializer,
configName);
}
}
if (context == null) {
context = bootstrapServiceContext(environment, event.getSpringApplication(),
configName);
}
apply(context, event.getSpringApplication(), environment);
}
?application是spring boot的配置加載。引入依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
Spring Cloud 配置中心多環(huán)境配置
一:spring boot 多環(huán)境配置文件
我們知道spring boot可以通過文件名來區(qū)分配置,如下:
application-dev.yml #開發(fā)環(huán)境
application-test.yml #測試環(huán)境
application-prod.yml #正式環(huán)境
二:spring cloud多環(huán)境配置文件
但是spring cloud用上了配置中心,就一個boostrap.yml,且不支持文件名的方式來區(qū)分。spring cloud 配置中心bootstrap.yml區(qū)分環(huán)境的辦法如下:
spring:
profiles:
active: dev
application:
name: user-server
feign:
hystrix:
enabled: true
##上面是基礎(chǔ)配置,不用上配置中心那種
##下面是環(huán)境區(qū)分,主要不同環(huán)境不同文件獲取
---
#開發(fā)環(huán)境
spring:
profiles: dev
cloud:
nacos:
discovery:
server-addr: localhost:8848
namespace: c97d4f46-deba-5588-b05f-c2a061ccc688
config:
server-addr: localhost:8848
file-extension: yaml
group: DEFAULT_GROUP
namespace: c97d4f46-deba-5588-b05f-c2a061ccc688
---
#正式環(huán)境
spring:
profiles: prod
cloud:
nacos:
discovery:
server-addr: localhost:8848
namespace: aa3de4c8-61ad-5568-9887-ed731659edd4
config:
server-addr: localhost:8848
file-extension: yaml
group: DEFAULT_GROUP
namespace: aa3de4c8-61ad-5568-9887-ed731659edd4
---
#測試環(huán)境
spring:
profiles: test
cloud:
nacos:
discovery:
server-addr: localhost:8848
namespace: 98adcdd5-f25c-7890-b8f3-97352adc83e8
config:
server-addr: localhost:8848
file-extension: yaml
group: DEFAULT_GROUP
namespace: 98adcdd5-f25c-7890-b8f3-97352adc83e8
多個配置以 — 分開,然后通過spring.profiles=環(huán)境表示具體的環(huán)境配置.。文章來源:http://www.zghlxwxcb.cn/news/detail-404942.html
三:java啟動方式
啟動時可以指定我們的服務(wù)器上面的運行引用配置如:文章來源地址http://www.zghlxwxcb.cn/news/detail-404942.html
java -jar -Dspring.profiles.active=test *****.jar
或者dockerfile啟動方式
ENTRYPOINT ["java","-jar","-Dspring.profiles.active=test","*****.jar"]
到了這里,關(guān)于Bootstrap.yml那點事 Spring Cloud 配置中心多環(huán)境配置的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!