복붙노트

[SPRING] Spring 부트에서 환경 변수 읽기

SPRING

Spring 부트에서 환경 변수 읽기

Spring Boot에서 환경 변수를 읽는 가장 좋은 방법은 무엇입니까? 자바에서는 다음과 같이 사용했다.

String foo = System.getenv("bar");

@Value 주석을 사용하여이를 수행 할 수 있습니까?

해결법

  1. ==============================

    1.문서 인용 :

    문서 인용 :

    따라서 Spring 부팅은 환경 변수를 사용하여 설정을 할 수있게 해주고, Spring 부팅은 @Value를 사용하여 설정에서 속성을 읽을 수있게 해 주므로 대답은 yes입니다.

    이것은 쉽게 테스트 할 수 있습니다. 다음과 같은 결과가 나옵니다.

    @Component
    public class TestRunner implements CommandLineRunner {
        @Value("${bar}")
        private String bar;
        private final Logger logger = LoggerFactory.getLogger(getClass());
        @Override
        public void run(String... strings) throws Exception {
            logger.info("Foo from @Value: {}", bar);
            logger.info("Foo from System.getenv(): {}", System.getenv("bar")); // Same output as line above
        }
    }
    
  2. ==============================

    2.@Value 주석으로 처리 할 수 ​​있습니다.

    @Value 주석으로 처리 할 수 ​​있습니다.

    @Value("${bar}")
    private String myVariable;
    

    콜론을 사용하여 찾을 수없는 경우 기본값을 제공 할 수도 있습니다.

    @Value("${bar:default_value}")
    private String myVariable;
    
  3. from https://stackoverflow.com/questions/44803211/read-environment-variable-in-springboot by cc-by-sa and MIT license