[Spring] @value(value annotation) 사용 방법
- 프로그램언어/스프링(Spring)
- 2020. 10. 23.
Properties를 읽는 방법이야 무궁무진하겠지만, 스프링으로 프로퍼티를 읽을 때 자주 사용하는 방법으로 value annotation을 이용하기도 한다. 사실 필자는 properties를 xml로 설정하여 map에 담아 get형태로 읽는 것을 선호하지만 요즘 워낙 어노테이션이 대세니 코드가 올드해보이지 않기 위해 일정 부분은 어노테이션을 섞는다.
사용방법은 매우 간단하다. 우선 resource 위치에 properties 파일을 생성한다.
예를 들기위해서 이 포스팅에선 test.properties라는 설정파일을 생성하였다.
test.properties
test=테스트입니다.
@Value 예제
import egovframework.rte.fdl.property.EgovPropertyService;
import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/apis/v1")
@PropertySource("classpath:test.properties")
public class TestController {
private static final Logger LOGGER = LoggerFactory.getLogger(TestController.class);
/** EgovPropertyService */
@Resource(name = "propertiesService")
protected EgovPropertyService propertiesService;
@Value("${test}")
private String test;
@GetMapping(value = "/test")
public String test(ModelMap model) {
model.addAttribute("test", test);
return "jsonView";
}
}
클래스 상단부에 PropertySource 어노테이션을 설정하고, 읽어들일 properties를 지정한다.
테스트결과 위와 같이 Value 어노테이션이 잘 인식되는 것을 알 수 있다. @Value의 장점은 PropertySource를 사용하여 다양한 프로퍼티 파일을 쉽게 불러들여서 값을 지정한다는 장점이 있다.
'프로그램언어 > 스프링(Spring)' 카테고리의 다른 글
[Spring boot] 스프링부트 jdbcTemplate 세팅 및 예제 (0) | 2022.04.28 |
---|---|
[Springboot] 스프링부트로 부트스트랩(bootstrap) 붙이기 (0) | 2021.06.20 |
[Spring] 스프링에서 Scheduler 사용하기 (0) | 2021.02.03 |
[Spring] WAS 환경별 @Value 변경 방법 (0) | 2020.10.23 |
Spring에서 JSON 사용법(jsonView) (1) | 2020.10.14 |