[SPRING] 런타임시 스프링 / 스프링 부트 속성 설정 / 무시
SPRING런타임시 스프링 / 스프링 부트 속성 설정 / 무시
Spring Boot를 사용하는 프로젝트에서는 application.properties를 사용하지만 외부 구성을 기반으로 이러한 등록 정보 (예 : 로깅 수준의 포트 번호)를 구성해야합니다. API를 통해 구성에 액세스하므로 런타임에만 알 수 있습니다.
런타임시 (예를 들어 bean을 사용하여) 몇몇 Spring 프로퍼티를 오버라이드하거나 설정하는 방법이 있는가? 그렇다면 어떻게 될 수 있는가?
해결법
-
==============================
1.Spring Cloud Config로 이것을 할 수있다.
Spring Cloud Config로 이것을 할 수있다.
일러스트레이션을 위해 런타임에 동적 속성 재정의를 볼 수있는 비교적 빠른 방법은 다음과 같습니다.
첫째, bean이 변경된 프로퍼티를 선택할 수 있으려면, 당신은 그것의 주석을 주어야한다.
@RefreshScope
스프링 클라우드 의존성을 스프링 부트 앱에 추가하십시오 (예 : gradle).
compile group: 'org.springframework.cloud', name: 'spring-cloud-starter', version: '1.1.1.RELEASE'
(또한 스프링 부트 액츄에이터 의존성이 필요합니다.)
앱을 실행하면 현재 설정을 예를 들어 볼 수 있습니다.
http://localhost:8080/env
예를 들어 application.properties에 'my.property'속성이 있으면 다음과 같은 내용이 표시됩니다.
"applicationConfig: [classpath:/application.properties]": { "my.property": "value1", etc
값을 변경하려면 application / x-www-form-urlencoded로 POST my.property = value2를 / env로 변경하십시오.
예
curl -X POST http://localhost:8080 -d my.property=value2
다시 GET / ENV하면 "manager"섹션 아래에 새 값이 표시됩니다.
변경된 속성을 적용하려면 빈 POST를 / 새로 고침하십시오. 이제 귀하의 빈은 새로운 가치를 갖게 될 것입니다.
-
==============================
2.변수를 전달하기 위해 시스템 속성을 사용할 수 있습니까? PropertyPlaceholderConfigurer를 구성하면 시스템 등록 정보 대 파일 등록 정보의 우선 순위를 설정할 수 있습니다.
변수를 전달하기 위해 시스템 속성을 사용할 수 있습니까? PropertyPlaceholderConfigurer를 구성하면 시스템 등록 정보 대 파일 등록 정보의 우선 순위를 설정할 수 있습니다.
예를 들면 다음과 같습니다.
@Bean public PropertyPlaceholderConfigurer placeHolderConfigurer() { PropertyPlaceholderConfigurer props = new PropertyPlaceholderConfigurer() props.setSystemPropertiesMode( PropertyPlaceholderConfigurer.SYSTEM_PROPERTIES_MODE_OVERRIDE ) props.setLocations(new PathMatchingResourcePatternResolver().getResources("classpath:/**.properties")); props }
위의 코드는 .properties 파일을로드하지만 우선 시스템 변수가되도록 우선 순위를 설정하므로 config에 동일한 변수를 덮어 쓸 시스템 변수를 설정하십시오.
또는 문서를 살펴보면 환경에서 검색 순서를 정의 할 것을 권장합니다.
바라건대 위의 하나가 당신이 필요로하는 것을 정리해야합니까?
from https://stackoverflow.com/questions/27919270/set-override-spring-spring-boot-properties-at-runtime by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 MVC가 리다이렉트를하지 못하게하려면 어떻게해야합니까? (0) | 2019.03.21 |
---|---|
[SPRING] 스프링으로 프로퍼티로드 (시스템 프로퍼티를 통해) (0) | 2019.03.21 |
[SPRING] Eclipse : javadoc 추가 (0) | 2019.03.21 |
[SPRING] 스프링 부트 2 및 OAuth2 / JWT 구성 (0) | 2019.03.21 |
[SPRING] Projection List에 의해 중첩 된 객체를 가져 오기위한 Hibernate Criteria를 작성하는 방법? (0) | 2019.03.21 |