복붙노트

[SPRING] 스프링 부트에서 application.yml이나 bootstrap.yml에 속성을 두는 것의 차이점은 무엇입니까?

SPRING

스프링 부트에서 application.yml이나 bootstrap.yml에 속성을 두는 것의 차이점은 무엇입니까?

스프링 부트에서 application.yml이나 bootstrap.yml에 속성을 두는 것의 차이점은 무엇입니까? logging.config의 경우 응용 프로그램이 다르게 작동합니다.

해결법

  1. ==============================

    1.방금 Spring Cloud 친구들에게 물어 봤고 여기에있는 정보를 공유해야한다고 생각했습니다.

    방금 Spring Cloud 친구들에게 물어 봤고 여기에있는 정보를 공유해야한다고 생각했습니다.

    application.yml 앞에 bootstrap.yml이로드됩니다.

    일반적으로 다음과 같은 경우에 사용됩니다.

    기술적으로 bootstrap.yml은 부모 Spring ApplicationContext에 의해로드됩니다. 그 부모 ApplicationContext는 application.yml을 사용하기 전에로드됩니다.

  2. ==============================

    2.Spring Cloud를 사용하고 애플리케이션 구성이 원격 구성 서버 (예 : Spring Cloud Config Server)에 저장되어있는 경우에만 사용 / 필요합니다.

    Spring Cloud를 사용하고 애플리케이션 구성이 원격 구성 서버 (예 : Spring Cloud Config Server)에 저장되어있는 경우에만 사용 / 필요합니다.

    문서에서 :

    bootstrap.yml 또는 bootstrap.properties에는 추가 구성 (예 : 기본값)이 포함될 수 있지만 일반적으로 여기에 부트 스트랩 구성 만 넣으면됩니다.

    일반적으로 두 가지 속성이 있습니다.

    시작시, Spring Cloud는 애플리케이션의 이름으로 설정 서버에 HTTP 호출을하고 해당 애플리케이션의 구성을 검색한다.

    부트 스트랩 프로세스 중에 검색된 구성은 여기에 정의 된 구성보다 우선하므로 표준 응용 프로그램 구성을 포함합니다. 일반적으로 기본 구성입니다.

  3. ==============================

    3.이 답변은 책 "Microservices 면접 질문, Java 개발자를 위해 매우 아름답게 설명되었습니다 (Spring Boot, Spring Cloud, Cloud 네이티브 응용 프로그램) Munish Chandel, 버전 1.30, 25.03.2018.

    이 답변은 책 "Microservices 면접 질문, Java 개발자를 위해 매우 아름답게 설명되었습니다 (Spring Boot, Spring Cloud, Cloud 네이티브 응용 프로그램) Munish Chandel, 버전 1.30, 25.03.2018.

    그의 책에서 다음 내용을 가져 왔으며,이 답변의 총 크레딧은 책 저자 인 Munish Chandel

    application.yml

    application.yml / application.properties 파일은 Spring Boot 응용 프로그램에만 적용됩니다. 응용 프로그램의 외부 속성 위치를 변경하지 않는 한, 스프링 부트는 항상 다음 위치에서 application.yml을로드합니다.

    /src/main/resources/application.yml
    

    응용 프로그램의 모든 외부 속성을이 파일에 저장할 수 있습니다. 스프링 부트 프로젝트에서 사용할 수있는 공통 속성은 다음에서 찾을 수 있습니다. https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html 이러한 속성은 다음과 같이 사용자 정의 할 수 있습니다. 귀하의 어플리케이션 요구에 따라. 샘플 파일은 다음과 같습니다.

    봄:     신청:         이름 : foobar     데이터 소스 :         driverClassName : com.mysql.jdbc.Driver         url : jdbc : mysql : // localhost / test 섬기는 사람:     포트 : 9000

    bootstrap.yml

    반면에 bootstrap.yml은 spring-cloud-config에만 해당하며 application.yml 앞에로드됩니다.

    bootstrap.yml은 Spring Cloud를 사용하고 마이크로 서비스 설정이 원격 Spring Cloud Configurator Server에 저장되어있는 경우에만 필요하다.

    bootstrap.yml에 대한 중요 사항

    
    spring.application.name: "application-name"
    spring.cloud.config.server.git.uri: "git-uri-config"
    
    
    
    spring.application.name: 
    spring.cloud.config.uri: 

    시작시, Spring Cloud는 애플리케이션의 이름으로 Spring Cloud Configurate Server에 HTTP (S) 호출을하고 해당 애플리케이션의 구성을 검색한다.

    application.yml은 마이크로 서비스의 기본 구성을 포함하며 부트 스트랩 프로세스 중에 검색된 모든 구성 (클라우드 구성 서버에서)은 application.yml에 정의 된 구성보다 우선합니다

  4. ==============================

    4.Bootstrap.yml은 서버에서 config를 가져 오는 데 사용됩니다. Spring 클라우드 애플리케이션이나 다른 애플리케이션을위한 것일 수있다. 일반적으로 다음과 같이 보입니다.

    Bootstrap.yml은 서버에서 config를 가져 오는 데 사용됩니다. Spring 클라우드 애플리케이션이나 다른 애플리케이션을위한 것일 수있다. 일반적으로 다음과 같이 보입니다.

    spring:
      application:
        name: "app-name"
      cloud:
        config:
          uri: ${config.server:http://some-server-where-config-resides}
    

    응용 프로그램을 시작할 때 주어진 서버에 연결을 시도하고 실행 / 디버그 구성에서 언급 한 스프링 프로파일을 기반으로 구성을 읽습니다.

    서버에 도달 할 수없는 경우 응용 프로그램이 더 이상 진행하지 못할 수도 있습니다. 그러나 프로필과 일치하는 구성이 로컬에 있으면 서버 구성이 무시됩니다.

    좋은 접근법 :

    로컬 용으로 별도의 프로필을 유지 관리하고 다른 프로필을 사용하여 앱을 실행하십시오.

  5. ==============================

    5.여기 내 2 센트 ..

    여기 내 2 센트 ..

    Bootstrap.yml 또는 Bootstrap.properties는 Spring Cloud Server에서 설정을 가져 오는 데 사용됩니다.

    예를 들어 My Bootstrap.properties 파일에 다음과 같은 Config가 있습니다.

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

    애플리케이션을 시작할 때 http : // localhost : 8888에 연결하여 서비스 구성을 가져오고 Spring Cloud Config 서버에있는 Calculation-service.properties를 확인한다.

    시작할 때 Calculation-Service 로그에서 유효성을 확인할 수 있습니다.

    INFO 10988 --- [restartedMain] c.c.c.ConfigServicePropertySourceLocator : http : // localhost : 8888에서 서버의 구성을 가져 오는 중입니다.

  6. from https://stackoverflow.com/questions/32997352/what-is-the-difference-between-putting-a-property-on-application-yml-or-bootstra by cc-by-sa and MIT license