수 많은 우문은 현답을 만든다

설정파일 불러오기 @Value @ConfigurationProperties 본문

개발지식/Springboot

설정파일 불러오기 @Value @ConfigurationProperties

aiden.jo 2022. 12. 23. 15:01

안녕하세요, 조영호입니다.

Spring에서는 공통 설정이나 숨겨야하는 내용들을 properties 또는 yml 파일에 적어놓고 그 값들을 호출해서 애플리케이션에서 사용합니다. 오늘은 이 설정값들을 불러오는 두 방법에 대해서 알아보겠습니다.

1. @Value 어노테이션

@Value("${api.url}")

private String url;

 

2. @ConfigurationProperties 어노테이션

@Component

@ConfigurationProperties(prefix = "api")

@Data

public class urlManager{

  private String url;

}

 

3. @Value vs @ConfigurationProperties 비교

한 두가지의 간단한 설정을 가져올때는 @Value 방식을 씁니다.

하지만 가져와야할 내용이 많고 좀 더 객체 지향적으로 설정 값들을 관리하고 싶다면 @ConfigurationProperties를 씁니다.

 

4. @ConfigurationProperties 사용방법

  • application.yml 파일은 아래와같이 작성하면 됩니다(prefix는 최상위 값을 따라갑니다)
    url:
     api: http://url.com
     method: post

  • Dependency 설정이 필요합니다.
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-configuration-processor</artifactId>
     
    <optional>true</optional>
    </dependency>
  • 다양한 표기법을 바인딩 해줍니다.
api.test-program.url  .properties / .yml 권장 표기법
api.testProgram.url 카멜 케이스
api.test_program.url .properties / .yml 사용가능한 표기법
API_TEST_PROGRAM_URL 시스템 환경 변수

 

  • SpEL(Spring Expression Language) 은 사용할 수 없다.
@Value("#{1 + 1}")
int onePlusOne; //2 -> @Value에서만 사용 가능하다.

 

즐거운 코딩되세요.

감사합니다.

 

 

 

 

 

참고

  • https://programmer93.tistory.com/47
  • https://velog.io/@probsno/SpELSpring-Expression-Language%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C-%EA%B0%84%EB%8B%A8%ED%95%98%EA%B2%8C-%EC%95%84%EB%9D%BC%EB%B3%B4%EC%9E%90

 

 

 

@ConfigurationProperties 사용법 - 삽질중인 개발자

- @configurationproperties 사용법 - ConfigurationProperties *.properties , *.yml 파일에 있는 property를 자바 클래스에 값을 가져와서(바인딩) 사용할 수 있게 해주는 어노테이션 Spring boot 에서는 운영에 필요한 설

programmer93.tistory.com

 

 

 

'개발지식 > Springboot' 카테고리의 다른 글

@Transactional 과 DB Connection 반환 이슈  (0) 2023.06.14
한글이 깨질때  (0) 2022.07.27
세마포어(Semaphore)  (0) 2022.07.13
FK 를 쓰지 않는 이유  (0) 2022.03.21
예외처리에 대한 고찰 - 3편 (성능 개선)  (0) 2022.03.09