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

解決nacos升級(jí)spring cloud 2020.0無(wú)法使用bootstrap.yml的問(wèn)題

 更新時(shí)間:2021年06月08日 09:19:33   作者:大造夢(mèng)家  
這篇文章主要介紹了解決nacos升級(jí)spring cloud 2020.0無(wú)法使用bootstrap.yml的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

nacos升級(jí)spring cloud 2020.0無(wú)法使用bootstrap.yml

之前用spring cloud整合nacos,需要一個(gè)bootstrap.yml作為spring啟動(dòng)的初始化配置

bootstrap.yml內(nèi)容大概如下:

spring:
  application:
    # 應(yīng)用名稱
    name: xxx
  profiles:
    active: dev
  cloud:
    nacos:
      config:
        file-extension: yml
        server-addr: localhost:8848
        username: nacos
        password: nacos

把spring cloud升級(jí)到2020.0.x以后,nacos就讀不到bootstrap.yml了

spring官方其實(shí)在change note中說(shuō)明了,在新版中將spring.cloud.bootstrap.enabled默認(rèn)設(shè)置為false不啟用:

https://github.com/spring-cloud/spring-cloud-release/wiki/Spring-Cloud-2020.0-Release-Notes#breaking-changes

源碼部分如下:

/*
 * Copyright 2013-2020 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.springframework.cloud.util;
import org.springframework.core.env.Environment;
import org.springframework.util.ClassUtils;
public abstract class PropertyUtils {

 /**
  * Property name for checking if bootstrap is enabled.
  */
 public static final String BOOTSTRAP_ENABLED_PROPERTY = "spring.cloud.bootstrap.enabled";

 /**
  * Property name for spring boot legacy processing.
  */
 public static final String USE_LEGACY_PROCESSING_PROPERTY = "spring.config.use-legacy-processing";

 /**
  * Property name for bootstrap marker class name.
  */
 public static final String MARKER_CLASS = "org.springframework.cloud.bootstrap.marker.Marker";

 /**
  * Boolean if bootstrap marker class exists.
  */
 public static final boolean MARKER_CLASS_EXISTS = ClassUtils.isPresent(MARKER_CLASS, null);

 private PropertyUtils() {
  throw new UnsupportedOperationException("unable to instatiate utils class");
 }

 /**
  * 判斷是否啟用bootstrap.yml的時(shí)候默認(rèn)設(shè)置成了false
  */
 public static boolean bootstrapEnabled(Environment environment) {
  return environment.getProperty(BOOTSTRAP_ENABLED_PROPERTY, Boolean.class, false) || MARKER_CLASS_EXISTS;
 }

 public static boolean useLegacyProcessing(Environment environment) {
  return environment.getProperty(USE_LEGACY_PROCESSING_PROPERTY, Boolean.class, false);
 }
}

解決方案是在vm啟動(dòng)參數(shù)中增加-Dspring.cloud.bootstrap.enabled=true,或者增加spring-cloud-starter-bootstrap依賴,至于spring cloud alibaba nacos后續(xù)是否能支持application.yml,目前alibaba官方還沒(méi)有回復(fù)

nacos避坑指南!nacos 配置中心無(wú)法加載bootstrap.yml/properties配置文件

在使用nacos時(shí)引入以下兩個(gè)依賴:

<!--服務(wù)注冊(cè)/發(fā)現(xiàn)-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
 
<!--配置中心來(lái)做配置管理-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

錯(cuò)誤異常信息:

com.alibaba.nacos.api.exception.NacosException: java.lang.reflect.InvocationTargetException

......

Caused by: java.lang.reflect.InvocationTargetException: null
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_211]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_211]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_211]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_211]
at com.alibaba.nacos.api.config.ConfigFactory.createConfigService(ConfigFactory.java:42) ~[nacos-api-1.1.1.jar:na]
... 34 common frames omitted
Caused by: com.alibaba.nacos.api.exception.NacosException: endpoint is blank

解決方案:加入以下依賴即可

<!-- 若bootstrap配置不生效,加入以下依賴 -->
<dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-bootstrap</artifactId>
     <version>3.0.1</version>
</dependency>

配置文件:

在啟動(dòng)服務(wù)后的第一條日志信息:

上面的 【conpon-service.properties】添加到nacos中

補(bǔ)充一下:nacos配置修改后,項(xiàng)目中要?jiǎng)討B(tài)實(shí)時(shí)更新,項(xiàng)目中需要?jiǎng)討B(tài)配置,在congtroller中加入一個(gè)注解

@RefreshScope // 動(dòng)態(tài)刷新nacos配置

即可。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論