source

Spring camel 케이스 속성을 대문자 환경 변수로 설정하는 방법은 무엇입니까?

manycodes 2023. 7. 15. 10:19
반응형

Spring camel 케이스 속성을 대문자 환경 변수로 설정하는 방법은 무엇입니까?

Spring 응용 프로그램에 다음과 같은 값을 로드할 코드가 있습니다.

@Component
public class MyElasticRestService {
    @Value("${elasticApi.baseURL}")
    private String elasticApiBaseUrl;

Spring 문서에 따르면, 나는 다음과 같은 대문자 환경 변수에서 오는 완화된 바인딩을 사용할 수 있어야 합니다.ELASTIC_API_BASE_URL또는ELASTICAPI_BASEURL하지만 어느 것이 옳은지 헷갈립니다.둘 다 작동이 안 되는 것 같아서 실제로 무엇이 잡히는지 디버깅 방법이 궁금합니다.

Spring Boot Actuator를 로드하여 다음을 확인했습니다.configprops종점의하지만 그것은 아무것도 가지고 있지 않습니다.elasticApi접두어

올바른 환경 변수는 무엇이어야 하며 애플리케이션에서 어떻게 변환되고 선택되는지 어떻게 확인할 수 있습니까?

@Value주석이 완화된 바인딩을 지원하지 않습니다.따라서 주석이 달린 클래스를 사용할 수 있습니다.@ConfigurationProperties또는 를 사용합니다.RelaxedPropertyResolver환경으로부터 가치를 얻는 것.

https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config-vs-value, 에 따르면, 그것은 이제 간단하게 가능합니다.@Value : @Value("config.refresh-rate")와 같은 이름에 대해 kebab-case(대시가 포함된 모든 소문자)를 사용하는 한

UPPER_SNAKE_CASE로 만들려고 하는 대신에, 당신은 그것을 당신의 웹사이트에 넣을 수 있습니다.application.yaml파일, 이 방법:

elasticApi.baseURL: ${ELASTIC_API_BASE_URL:defaultvalue}

또는 이런 방식은 별로 중요하지 않습니다.

elasticApi:
   baseURL: ${ELASTIC_API_BASE_URL:defaultvalue}

언급URL : https://stackoverflow.com/questions/35517891/how-to-set-spring-camel-case-property-with-uppercase-environment-variable

반응형