source

bootstrap.properties가 spring-cloud-starter-config에서 무시되는 이유는 무엇입니까?

manycodes 2023. 10. 28. 08:04
반응형

bootstrap.properties가 spring-cloud-starter-config에서 무시되는 이유는 무엇입니까?

제 목표는 다음에 대한 구성을 얻는 것입니다.world-service로부터config-service.

아키텍처:

  1. config-service의지하여spring-cloud-config-serverlocalhost:8888
  2. world-service의탁하여spring-web그리고.spring-cloud-starter-config.

수행한 작업:

  1. Config Server를 설정하고 GET 요청을 다음으로 보냅니다.http://localhost:8888/hello-service/master그리고 config 서버는hello-service.propertiesconfig-repo 저장소에서. (필요한 경우)config-service소스 코드, 이 저장소로 푸시하겠습니다.)

내가 예상한 결과: Theworld-service포트 8081을 사용합니다.

내 실제 결과: 더world-service포트 8080을 사용합니다.

부트스트랩.속성

spring.application.name=world-service
spring.cloud.config.uri=http://localhost:8888

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>world-service</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>world-service</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>11</java.version>
        <spring-cloud.version>2020.0.0-M5</spring-cloud.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </repository>
    </repositories>

</project>

Spring Cloud 2020을 통해 부트스트랩의 작동 방식에 변화가 생겼기 때문에 다음과 같은 새로운 시동장치를 추가해야 합니다.spring-cloud-starter-bootstrap.

나는 그것에 하루를 보냈고 마침내 해결책을 찾았습니다.다른 사람들에게 도움이 될 수도 있습니다.

새 종속성을 추가해야 합니다.

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

Spring Cloud 2020.0에 따르면

spring-cloud-commons에서 제공하는 부트스트랩은 기본적으로 더 이상 사용할 수 없습니다.프로젝트에 필요한 경우 속성을 사용하거나 새 시동기를 사용하여 다시 활성화할 수 있습니다.

spring.cloud 속성을 설정하여 다시 활성화합니다.bootstrap.enabled=true 또는 spring.config.use-legacy-processing=true.이들은 환경 변수, 자바 시스템 속성 또는 명령줄 인수로 설정해야 합니다.다른 옵션은 새 스프링-클라우드-스타터-부트스트랩(POM 파일에)을 포함하는 것입니다.

저는 첫 번째 옵션을 사용했고 그것이 저에게 효과가 있었습니다.

Spring Boot 2.4는 spring.config.import 속성을 통해 구성 데이터를 가져올 수 있는 새로운 방법을 도입했습니다.이제 Config Server에 바인딩하는 기본 방법입니다.

config server에 연결하려면 application.yml에서 다음을 설정합니다.

스프링:응용프로그램:이름 : APPLICATION_NAME구성:가져오기: 옵션:configserver:http://USER:PASSWARD@MY_HOST:PORT/

자세한 내용은 https://docs.spring.io/spring-cloud-config/docs/3.0.0/reference/html/ #config-data-import에서 확인할 수 있습니다.

언급URL : https://stackoverflow.com/questions/65063402/why-bootstrap-properties-is-ignored-by-spring-cloud-starter-config

반응형