欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringCloud2020 bootstrap 配置文件失效的解決方法

 更新時間:2021年02月07日 08:56:24   作者:馮文議  
這篇文章主要介紹了SpringCloud2020 bootstrap 配置文件失效的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

Spring Cloud 2020版本 bootstrap 配置文件(properties 或者 yml)無效

如何解決?

背景介紹

微服務(wù)是基于Spring Cloud框架搭建的,Spring Cloud Config作為服務(wù)配置中心。

業(yè)務(wù)服務(wù)只配置服務(wù)名稱、啟用環(huán)境和config的URL地址,其他都配置在配置中心,例如服務(wù)端口、服務(wù)注冊中心地址等??稍陂_發(fā)環(huán)境(dev)、測試環(huán)境(test)和生產(chǎn)環(huán)境(prod)分別配置。

所以預(yù)想的啟動流程是:先加載配置文件,再啟動服務(wù)。

之前的做法是,將配置文件名稱改為:bootstrap.properties。

問題

之前直接就可以用,而現(xiàn)在,啟動的端口是8080,明顯沒有加載到bootstrap.properties文件,我以為我的文件名字寫錯了,核對了幾次,確認(rèn)無誤,我猜想估計是bootstramp.properties配置文件沒有生效。

之前的版本:

  • spring boot 2.3.1.RELEASE
  • spring cloud Hoxton.SR4

當(dāng)前版本:

  • spring boot 2.4.2
  • spring cloud 2020.0.1

查找原因

根據(jù)上面出現(xiàn)的問題,我使用百度搜索了下,大概的原因知道了:從Spring Boot 2.4版本開始,配置文件加載方式進(jìn)行了重構(gòu)。

另外也有配置的默認(rèn)值變化,如下:

Spring Boot 2.3.8.RELEASE

package org.springframework.cloud.bootstrap;
public class BootstrapApplicationListener implements ApplicationListener<ApplicationEnvironmentPreparedEvent>, Ordered {
 public void onApplicationEvent(ApplicationEnvironmentPreparedEvent event) {
  ConfigurableEnvironment environment = event.getEnvironment();
  if ((Boolean)environment.getProperty("spring.cloud.bootstrap.enabled", Boolean.class, true)) {

Spring Boot 2.4.2

package org.springframework.cloud.util;
public abstract class PropertyUtils {
 public static boolean bootstrapEnabled(Environment environment) {
  return (Boolean)environment.getProperty("spring.cloud.bootstrap.enabled", Boolean.class, false) || MARKER_CLASS_EXISTS;
 }

傳統(tǒng)解決方案

其實官網(wǎng)說得很明白??聪旅孢@段:

Config First Bootstrap
To use the legacy bootstrap way of connecting to Config Server, bootstrap must be enabled via a property or the spring-cloud-starter-bootstrap starter. The property is spring.cloud.bootstrap.enabled=true. It must be set as a System Property or environment variable. Once bootstrap has been enabled any application with Spring Cloud Config Client on the classpath will connect to Config Server as follows: When a config client starts, it binds to the Config Server (through the spring.cloud.config.uri bootstrap configuration property) and initializes Spring Environment with remote property sources.

The net result of this behavior is that all client applications that want to consume the Config Server need a bootstrap.yml (or an environment variable) with the server address set in spring.cloud.config.uri (it defaults to "http://localhost:8888").

兩個關(guān)鍵點:

1、加一個依賴:spring-cloud-starter-bootstrap

<dependency>
 <groupId>org.springframework.cloud</groupId>
 <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

2、加一個配置:spring.cloud.config.uri

bootstrap.properties

# 應(yīng)用名稱
spring.application.name=erwin-cloud-user
# 啟用環(huán)境
spring.profiles.active=dev

# 配置文件
spring.cloud.config.label=${spring.application.name}
spring.cloud.config.name=${spring.application.name}
spring.cloud.config.profile=${spring.profiles.active}
spring.cloud.config.uri=http://localhost:9000

解決方案

現(xiàn)在,你只需要這樣:

application.properties

# 應(yīng)用名稱
spring.application.name=erwin-cloud-user
# 啟用環(huán)境
spring.profiles.active=dev

spring.config.import=optional:configserver:http://localhost:9000

spring.cloud.config.label=${spring.application.name}
spring.cloud.config.name=${spring.application.name}
spring.cloud.config.profile=${spring.profiles.active}

到此這篇關(guān)于SpringCloud2020 bootstrap 配置文件失效的解決方法的文章就介紹到這了,更多相關(guān)SpringCloud2020 bootstrap 配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java 實現(xiàn)最小二叉樹堆排序的實例

    java 實現(xiàn)最小二叉樹堆排序的實例

    這篇文章主要介紹了java 實現(xiàn)最小二叉樹堆排序的實例的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • 詳解Spring 兩種注入的方式(Set和構(gòu)造)實例

    詳解Spring 兩種注入的方式(Set和構(gòu)造)實例

    本篇文章主要介紹了Spring 兩種注入的方式(Set和構(gòu)造)實例,Spring框架主要提供了Set注入和構(gòu)造注入兩種依賴注入方式。有興趣的可以了解一下。
    2017-02-02
  • 教你如何輕松學(xué)會Java快慢指針法

    教你如何輕松學(xué)會Java快慢指針法

    要想把搬磚的效率提高,我們肯定是逃不掉數(shù)據(jù)結(jié)構(gòu)和算法知識的,這不,可愛的小編今天就和大家一起學(xué)習(xí)來了,今天給大家分享的是快慢指針,那啥是快慢指針呢,文中有非常詳細(xì)的解釋,需要的朋友可以參考下
    2021-06-06
  • JSON 格式的弊端與解決方法(真實示例)

    JSON 格式的弊端與解決方法(真實示例)

    JSON 格式是目前最流行的數(shù)據(jù)交互格式,廣泛應(yīng)用于前后端分離的系統(tǒng)。但也有一些場合不適合使用 JSON 格式,這篇文章主要介紹了JSON 格式的弊端與解決方法,需要的朋友可以參考下
    2022-09-09
  • Spring Boot集成Shiro實現(xiàn)動態(tài)加載權(quán)限的完整步驟

    Spring Boot集成Shiro實現(xiàn)動態(tài)加載權(quán)限的完整步驟

    這篇文章主要給大家介紹了關(guān)于Spring Boot集成Shiro實現(xiàn)動態(tài)加載權(quán)限的完整步驟,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • IntelliJ IDEA之配置JDK的4種方式(小結(jié))

    IntelliJ IDEA之配置JDK的4種方式(小結(jié))

    這篇文章主要介紹了IntelliJ IDEA之配置JDK的4種方式(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Java同步鎖synchronized用法的最全總結(jié)

    Java同步鎖synchronized用法的最全總結(jié)

    這篇文章主要介紹了Java同步鎖synchronized用法的最全總結(jié),需要的朋友可以參考下,文章詳細(xì)講解了Java同步鎖Synchronized的使用方法和需要注意的點,希望對你有所幫助
    2023-03-03
  • 詳解Java的Hibernate框架中的緩存與原生SQL語句的使用

    詳解Java的Hibernate框架中的緩存與原生SQL語句的使用

    這篇文章主要介紹了Java的Hibernate框架中的緩存與原生SQL語句的使用,Hibernate是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下
    2015-12-12
  • Java實現(xiàn)字符串和輸入流的相互轉(zhuǎn)換

    Java實現(xiàn)字符串和輸入流的相互轉(zhuǎn)換

    這篇文章主要介紹了Java實現(xiàn)字符串和輸入流的相互轉(zhuǎn)換方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 解決無法解析javax.servlet的方法

    解決無法解析javax.servlet的方法

    最近在創(chuàng)建一個servlet時,自動生成的代碼中出現(xiàn)servlet無法解析的提示,令我無法正常使用servlet里的方法,在對各個步驟進(jìn)行查看后,發(fā)現(xiàn)了問題所在,需要的朋友可以參考下
    2021-05-05

最新評論