복붙노트

[SPRING] Spring 부트 종속성에서 application.properties 상속

SPRING

Spring 부트 종속성에서 application.properties 상속

5 가지 스프링 부트 프로젝트가 있다고 가정 해 보겠습니다. 그들 모두는 몇 가지 공유 / 공통 클래스를 가진 Spring Boot 프로젝트 No 6에 대한 Maven 의존성을 가지고있다. 5 개의 독립적 인 프로젝트는 각 application.properties에 많은 공통 속성이 할당되어 있는데이를 요약하여 공통 프로젝트로 옮깁니다. 전반적으로 다음과 같이 보입니다.

                                            Project 1 (app.properties)
Common Project (app-common.properties) <--- Project 2 (app.properties)
                                            Project 3 (app.properties)...

현재 문제는 app-common.properties가 project1.jar / lib / common-project.jar 안에 있고 app-common.properties가 시작시로드되지 않는 것입니다.

의존성에서 그것을 확장하는 방법이 있습니까?

CommonProject Main 클래스는 다음과 같습니다.

@SpringBootApplication
public class CommonApplication extends SpringBootServletInitializer {

    protected static void run(SpringApplication application, String[] args) {
        application.run(args);
    }
}

Project1 메인 클래스는 다음과 같습니다.

public class Project1 extends CommonApplication {

    public static void main(String[] args) {
        run(new SpringApplication(Project1.class), args);
    }
}

해결법

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

    1.PropertySource 주석을 사용하고 앱에 대한 두 가지 소스를 제공하십시오.

    PropertySource 주석을 사용하고 앱에 대한 두 가지 소스를 제공하십시오.

    @PropertySources({
            @PropertySource("classpath:app-common.properties"),
            @PropertySource("classpath:app.properties")
        })
    

    자세한 내용은 여기에서 찾을 수 있습니다. https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

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

    2.현재 봄 부팅은 상속 속성을 제공하지 않습니다.

    현재 봄 부팅은 상속 속성을 제공하지 않습니다.

    스프링 부트 응용 프로그램은 여러 속성 소스를 지원하지만 xxx.properties에 대한 규칙 (읽기 : 내장 논리)은 동일한 파일 이름을 가진 여러 속성 파일이있는 경우 마지막 xxx.properties를 확인하는 것입니다.

    이것에 대한 많은 해결책이 있습니다.

    가능한 한 가지 해결책은

    또 다른 가능한 솔루션은 속성에 고유 한 사용자 지정 파일 이름을 사용하는 것입니다.

  3. from https://stackoverflow.com/questions/35663679/spring-boot-inherit-application-properties-from-dependency by cc-by-sa and MIT license