Java/Spring

[Spring] @PropertySource, @Value 어노테이션에 대해 알아보자

SeungbeomKim 2023. 11. 25. 18:21

spring-boot-image

 

개발을 할 때, Property 파일을 resource 폴더 내에 만들어 두고 필요할 때 해당 값을 많이 읽어옵니다. 주로 데이터베이스 연결 설정이나 Property 파일의 속성을 주입할 때 사용합니다.

즉, @PropertySource 어노테이션을 통해 외부의 설정 파일(.properties, .yml)을 읽어와 해당 정보를 사용할 수 있게 됩니다.

 

이제 @PropertySource, @Value에 대해 간단하게 설명 드리도록 하겠습니다. 

 

propertysource-value-image

 

 

@PropertySource("value = "classpath:allergy.properties")

  • classpath:allergy.properties 경로에 있는 설정 파일을 읽어옵니다.
  • Environment 객체를 이용해서 해당 설정 값을 가져올 수 있습니다.
  • 코드와 설정을 분리하기에 유지보수성이 높아집니다.
  • Java 8 이상에서는 해당 어노테이션을 여러 개 사용할 수 있습니다.
  • @PropertySources 어노테이션을 통해 @PropertySource 어노테이션을 배열 형식으로 담을 수 있고, 따로 쓰는 것도 가능합니다.

 

@Value("#{${allergenicIngredientsMap}}")

  • 프로퍼티 값을 주입하는데 사용하는 어노테이션
  • 프로퍼티 소스가 Spring Environment로 갖고 온 값 중에서 동적으로 allergenicIngredientsMap을 읽어와서,  allergenicIngredients 변수에 매핑을 시켜줍니다.
  • 해당 변수를 통해 allergenicIngredientsMap의 값에 대해 접근할 수 있게 됩니다.

<참고 자료>

http://ojc.asia/bbs/board.php?bo_table=LecSpring&wr_id=860

 

(동영상)스프링에서 프로퍼티(Property) 파일 다루기, @PropertySource, @Value

스프링에서 프로퍼티(Property) 파일 다루기, @PropertySource, @Value 1. @PropertySource로 자바설정에서 프로퍼티 파일 다루기 @PropertySource는 - Spring의 환경(Environment)에 프로퍼티 파일의 속성을 주입하며, - @

ojc.asia