spring-boot을 사용하여 라이브러리의 기본 속성 설정
저는 스프링부츠를 이용한 다양한 서비스를 가지고 있습니다.각 서비스에 대해 공통적인 구성을 설정하지만 서비스가 원하는 경우 해당 속성을 사용하여 재정의할 수 있도록 허용합니다.특성의 예로는 스프링이 있습니다.show_filename, management urlone 등.
어떻게 해야 하나요?다음이 있는 경우:
- service-common과 src/main/syslog/application.yml 및 기본 속성
- service1(src/main/syslog/application.yml 및 자체 속성 포함)
우선 service1 버전과 병합했으면 합니다.대신 클래스 경로에서 발견된 첫 번째 것만 사용되는 것 같습니다.
(또는 @Configuration 클래스를 사용하는 것이 훨씬 더 좋겠지만 많은 속성을 정의하는 데 사용할 수 있을지 모르겠습니다.)
속성 소스가 고려되는 순서에 따라 여러 가지 옵션을 사용할 수 있습니다.
공용 라이브러리가 다음을 만드는 책임이 있는 경우SpringApplication
사용할 수 있습니다.setDefaultProperties
이러한 값은 서비스에 의해 재정의될 수 있습니다.application.properties
.
또는 라이브러리에서 다음을 사용할 수 있습니다.@PropertySource
그 중 하나에@Configuration
구성할 클래스(예:library.properties
출처로서다시 말하지만, 이러한 속성은 서비스에서 재정의될 수 있습니다.application.properties
.
나는 그것들을 병합하는 것이 무슨 뜻인지 잘 모르겠습니다.
하지만 결국에는 프로파일별 구성을 사용하는 상황을 설명하는 것이라고 생각합니다.특정 서비스에 특정한 속성은 Spring 프로파일을 사용하여 관리/주입할 수 있기 때문에 항상 기본 속성 파일보다 우선합니다(설명서 참조).
예를 들어, 당신은 그 파일을 가질 수 있습니다.application-service1.properties
속성으로 앱을 실행할 때 자동으로 사용됩니다.spring.profiles.active=service1
명령행 및 기타 위치에서 지정할 수 있습니다.이 속성을 지정하지 않으면 Spring Boot이 기본값으로 폴백됩니다.application.properties
파일.
물론 두 파일 모두에 공통 속성을 기록할 수 있습니다.
application.properties:
service.url=http://localhost:8080/endpoint
service.user=admin
service.password=admin
application-service1.properties:
service.url=http://api.service.com/endpoint
service.user=admin
service.password=aosdnoni3
public class MyApplicationListener implements ApplicationListener<ApplicationEvent> {
@Override
public void onApplicationEvent(ApplicationEvent event) {
if (event instanceof ApplicationEnvironmentPreparedEvent) {
ApplicationEnvironmentPreparedEvent envEvent = (ApplicationEnvironmentPreparedEvent) event;
ConfigurableEnvironment env = envEvent.getEnvironment();
Properties props = new Properties();
//set props as desired
env.getPropertySources()
.addFirst(new PropertiesPropertySource("customname", props));
}
}
그런 다음 src/main/resources/METa-INF/spring.factory에서 다음 행을 추가합니다.org.springframework.context.ApplicationListener=mypackage.MyApplicationListener
언급URL : https://stackoverflow.com/questions/28892948/set-default-properties-in-a-library-with-spring-boot
'source' 카테고리의 다른 글
INSERT/UPDATE를 위해 Oracle SQL의 MERGE 문에 조건 추가 (0) | 2023.06.19 |
---|---|
연결을 명시적으로 닫아야 합니까? (0) | 2023.06.19 |
Excel 레이블의 캡션에서 텍스트를 세로로 중앙에 배치하려면 어떻게 해야 합니까? (0) | 2023.06.19 |
Flake8: 전체 파일에 대한 특정 경고 무시 (0) | 2023.06.19 |
리소스 'http://...firebase-measurement-connector-impl-17.0.5-javadoc.jar'를 가져올 수 없습니다. (0) | 2023.06.19 |