sourcetip

Spring Boot 의존관계에서 application.properties를 상속합니다.

fileupload 2023. 2. 9. 22:27
반응형

Spring Boot 의존관계에서 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가 부팅 시 로드되지 않는 것 같습니다.

의존관계에서 확장할 수 있는 방법이 있나요?

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

@SpringBootApplication
public class CommonApplication extends SpringBootServletInitializer {

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

프로젝트 1 메인 클래스는 다음과 같습니다.

public class Project1 extends CommonApplication {

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

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 를 참조해 주세요.

현재 스프링 부트는 상속 속성을 제공하지 않습니다.

스프링 부트 애플리케이션은 여러 속성 소스를 지원하지만 규칙(읽기: 내장 로직)은xxx.properties마지막을 해결하는 것이다.xxx.properties동일한 파일 이름을 가진 속성 파일이 여러 개 있는 경우.

여기에는 많은 해결책이 있다.

가능한 해결책 중 하나는

  1. 종속성에 사용자 지정 프로파일 적용
  2. 상속 가능한 설정을 포함하다application-customprofile.properties
  3. 부양가족을 설정하다spring.profiles.include=customprofileapplication[-{profile}].properties(주의: 로 설정되어 있는 경우)application.properties모든 프로파일에 적용됩니다.)

속성에 고유한 커스텀파일명을 사용하는 방법도 있습니다.

  • 즉, 기본값을 사용하는 대신application.properties,사용하다common.properties

언급URL : https://stackoverflow.com/questions/35663679/spring-boot-inherit-application-properties-from-dependency

반응형