[SPRING] 환경 변수를 통해 이름에 밑줄이있는 Spring Boot 속성을 설정하는 방법은 무엇입니까?
SPRING환경 변수를 통해 이름에 밑줄이있는 Spring Boot 속성을 설정하는 방법은 무엇입니까?
스프링 부트 앱에서 hibernate.format_sql을 설정하고 싶다. 환경 변수를 사용하여 설정하려고합니다.
Spring Boot는 Spring 환경에서 FOO_BAR_BAZ와 같은 모든 환경 변수를 foo.bar.baz라는 속성으로 변환합니다.
환경 변수를 사용하여 Spring Boot에서 대상 이름에 밑줄이있는 속성을 어떻게 설정할 수 있습니까? 아마도 HIBERNATE_FORMAT_SQL은 hibernate.format.sql로 변환 될 것입니까?
해결법
-
==============================
1.이것은 오래된 질문이지만 누군가 (나 같은) 다른 사람들이이 정보를 찾는 경우에 대비하여 대답 할 것입니다.
이것은 오래된 질문이지만 누군가 (나 같은) 다른 사람들이이 정보를 찾는 경우에 대비하여 대답 할 것입니다.
HIBERNATE FORMAT_SQL은 트릭을해야합니다.
사실 "번역 된"OS 환경 변수가 아니라 Spring 속성 이름입니다.
이름은 여러 가지 방법으로 번역되어 사용 가능한 환경 변수를 찾았습니다. 예 : "hibernate.format.sql"은 다음과 같이 조회됩니다 :
그렇다면 대문자와 동일합니다.
set 또는 export 명령으로 점에 이름이있는 환경 변수를 설정할 수는 없지만 env 명령으로는 가능합니다. 나는 이것이 좋은 생각인지 아닌지에 대한 판단을 연기한다.
env "my.dotted.name=\"a value\"" the-command-you-want-to-run
SystemEnvironmentPropertySource.java를 살펴보십시오. 자세한 내용은 특정 버전으로 연결되지만 사용중인 버전을 확인해야합니다.
프로덕션 환경에서 이러한 종류의 문제를 해결하려면 속성 해결 코드에 대한 디버그 로깅을 켜십시오.
logging: level: org.springframework.core.env: DEBUG
... 또는 적절한 환경 변수를 설정하여 :)
-
==============================
2.SPRING_JPA_SHOW_SQL = true가 정상적으로 작동합니다. 특정 속성에 대한 이름이 과부하인지, 아니면 Spring이 더 영리한 작업을하고 있는지 여부를 알 수 없습니다. 그것은 내 문제를 해결하고 내가 물어 본 예제에 대한 바람직한 행동을했다.
SPRING_JPA_SHOW_SQL = true가 정상적으로 작동합니다. 특정 속성에 대한 이름이 과부하인지, 아니면 Spring이 더 영리한 작업을하고 있는지 여부를 알 수 없습니다. 그것은 내 문제를 해결하고 내가 물어 본 예제에 대한 바람직한 행동을했다.
from https://stackoverflow.com/questions/34178556/how-to-set-a-spring-boot-property-with-an-underscore-in-its-name-via-environment by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring 3.0을 사용하는 메소드에 @Async를 사용할 때 타임 아웃 값 제공하기 (0) | 2019.02.08 |
---|---|
[SPRING] @PropertySource의 클래스 패스 와일드 카드 (0) | 2019.02.08 |
[SPRING] 스프링 MVC 기반 REST 서비스에 다중 / 혼합 요청을 보낼 수 없습니다. (0) | 2019.02.07 |
[SPRING] Spring-boot thymeleaf는 클래스 패스에서 HTML 파일을로드한다. (0) | 2019.02.07 |
[SPRING] Spring - 도트 주석 뒤에 패스 변수 자름 (0) | 2019.02.07 |