[Spring] @value(value annotation) 사용 방법

    Properties를 읽는 방법이야 무궁무진하겠지만, 스프링으로 프로퍼티를 읽을 때 자주 사용하는 방법으로 value annotation을 이용하기도 한다. 사실 필자는 properties를 xml로 설정하여 map에 담아 get형태로 읽는 것을 선호하지만 요즘 워낙 어노테이션이 대세니 코드가 올드해보이지 않기 위해 일정 부분은 어노테이션을 섞는다.

     

    사용방법은 매우 간단하다. 우선 resource 위치에 properties 파일을 생성한다.

    예를 들기위해서 이 포스팅에선 test.properties라는 설정파일을 생성하였다.

     

    resources에 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를 지정한다. 

     

    test 결과

     

    테스트결과 위와 같이 Value 어노테이션이 잘 인식되는 것을 알 수 있다. @Value의 장점은 PropertySource를 사용하여 다양한 프로퍼티 파일을 쉽게 불러들여서 값을 지정한다는 장점이 있다. 

     

     

    댓글

    Designed by JB FACTORY