programing

bootstrap.yml이 Spring Boot 2에 로드되지 않음

css3 2023. 10. 7. 12:07

bootstrap.yml이 Spring Boot 2에 로드되지 않음

구성 서버에 연결해야 하는 스프링 부트 클라이언트 응용 프로그램을 시작할 때 문제가 발생했습니다.bootstrap.yml 파일이 무시되고 있습니다.

구성 서버 - 작동합니다!

server:
  port: 8888  
spring:
  application:
    name: configserver
  cloud:
    config:
      server:
        git:
          uri:https://xxxxx@bitbucket.org/eco/properties.git

bootstrap.yml- 클라이언트 구성 - 작동하지 않습니다!

spring:
  application:
    name: api
  cloud:
    config:
      uri: http://localhost:8888

응용 프로그램을 시작할 bootstrap.yml 파일이 무시되고 있습니다.

POM 클라이언트

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.2.RELEASE</version>
</parent>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Finchley.RC2</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
<properties>
    <java.version>1.8</java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <spring-cloud.version>2.0.0.RC2</spring-cloud.version>
</properties>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>

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

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka</artifactId>
        <version>1.4.4.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>

    <!-- Database dependencies -->
    <dependency>
        <groupId>com.oracle.jdbc</groupId>
        <artifactId>ojdbc7</artifactId>
        <version>12.1.0.2</version>
        <scope>system</scope>
        <systemPath>${basedir}/src/main/resources/lib/ojdbc7-12.1.0.2.jar</systemPath>
    </dependency>

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.9.0</version>
    </dependency>

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.9.0</version>
    </dependency>

    <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-all</artifactId>
        <version>1.10.19</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-properties-migrator</artifactId>
        <scope>runtime</scope>
    </dependency>
</dependencies>
<build>
    <finalName>api-emissor</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>1.3.5.RELEASE</version>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>${java.version}</source>
                <target>${java.version}</target>
            </configuration>
        </plugin>
    </plugins>
</build>

메인클래스클라이언트

@SpringBootApplication
@EnableEurekaClient
@EnableAutoConfiguration(exclude = {SecurityAutoConfiguration.class})
@ComponentScan("br.com.eco.api.emissor")
@EnableJpaRepositories("br.com.eco.api.emissor.repository")
@EntityScan("br.com.eco.api.emissor.domain")
public class Application {
    public static void main(final String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

bootstrap.yml이 무시되는 이유는 무엇입니까?

Spring Boot config 클라이언트에서 다음 종속성 추가:

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

스프링 클라우드 스타터에 대한 종속성을 추가해야 합니다.

이 종속성을 에 추가해야 합니다.pom.xml:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
</dependency>

구성 이름을 지정해야 하며 구성 서비스의 구성 파일 이름과 일치해야 합니다.

spring:
  cloud:
    config:
      name: myService    # myService.yml or myService-[profile].yml( if you have a profile activated).
        uri: http://localhost:8888

만약 당신이 a를 정의했다면,spring.config.location다음에 대한 경로를 포함하여 구성 파일에 대한 모든 경로를 재정의합니다.bootstrap.yml그래서 당신은 변해야 합니다.spring.config.location로.spring.config.additional-location.

따라서 앱을 실행할 때 추가해야 합니다.-Dspring.config.additional-location=/path/to/application.yml.

자세한 내용은 이 항목을 확인하십시오.

응용프로그램에서 사용할bootstrap.yml스프링 클라우드 의존성을 사용하는 경우.클라우드 검색 클라이언트가 될 수 있습니다.

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

또는 클라우드 구성 클라이언트:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-client</artifactId>
</dependency>

저도 같은 문제가 있었습니다.내가 사용한 pom.xml은 src/main/resource에서 포함하는 파일을 지정했습니다.그래서 여기에 bootstrap.properties도 추가해야 했습니다.

<build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>application.properties</include>
                    <include>bootstrap.properties</include>
                </includes>
            </resource>
        </resources>
...</build>

저의 경우 STS4를 사용하고 있는데 기본적으로 생성된 POM 파일이 작동하지 않아 당신과 같은 문제가 발생했지만, POM 파일에서 조금 변경한 후 모든 것이 작동하고 있고 마침내 콘솔에서 "서버에서 구성 가져오기"와 같은 것을 발견했습니다.제 POM의 변경 사항은 다음과 같습니다.

  1. 스프링 부트 버전을 2.2.6으로 변경합니다.풀어주다.
  2. 스프링 클라우드 버전을 Hoxton으로 변경합니다.SR6 또는 헥스턴.SR4 (그리고 나는 어떤 Hoxton 버전이라도 작동할 것이라고 믿습니다.

이전 변경 사항을 적용한 후 내 POM 파일은 다음과 같습니다.

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <!-- <version>2.4.0</version> -->
        <version>2.2.6.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>
    <groupId>net.kha.microservices</groupId>
    <artifactId>limits-service</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>limits-service</name>
    <description>Demo project for Spring Boot - Cloud</description>

    <properties>
        <java.version>1.8</java.version>
        
        <!-- <spring-cloud.version>2020.0.0-SNAPSHOT</spring-cloud.version> -->
        <!-- <spring-cloud.version>2020.0.0-M4</spring-cloud.version> -->
        
        <!--  Both are working with spring boot version 2.2.6.RELEASE 
              you should find something like "Fetching config from server at" in your console 
              each time you run the client project as spring boot app 
        -->
        <spring-cloud.version>Hoxton.SR6</spring-cloud.version>
        <!-- <spring-cloud.version>Hoxton.SR4</spring-cloud.version> -->    
    </properties>

언급URL : https://stackoverflow.com/questions/50821110/bootstrap-yml-not-loading-in-spring-boot-2