[Spring] Properties 사용하기

    지난 시간에 이어 Properties를 사용하는 시간을 갖겠습니다.

     

     

     

     

    ▼ propeties 정의하기

    data1.properties
    data2.properties

    2개의 properties안에는 총 8개의 문자가 작성되어 있습니다.

    우리는 이를 사용하기 위해 properties를 불러와야 합니다.

     

     

    Spring의 실행 시, index.jsp가 실행되는 것을 아는 이상, 이를 불러오도록 하겠습니다.

    이 과정이 귀찮다면 main함수를 이용하셔도 상관없습니다.

     

     

    ▼ Properties 불러오는 방법

    초간단 설명을 위하여, 한 개의 properties 보다는 2개의 properties를 이용하였습니다.

     

    그리고 2개 이상의 properties를 불러오는 방법은 대표적으로 3가지의 방법이 존재합니다.

     

    • @PropertySource를 이용하여 한 개씩 부르는 방법
    • @PropertySource를 복수개 선택하여 부르는 방법
    • @PropertySources를 이용하여 PropertySource를 묶는 방법

     

     

    3가지의 방법 중 한 개를 선택하여 어노테이션 호출을 진행하면 됩니다.

    이렇게 지정한 properties는 해당 class와 연결이 되어 properties의 키값을 통해 value값을 호출할 수 있게 됩니다.

     

     

    ▼ properties를 reference에 저장하기

    key값을 통해 value가 저장이 된다.

    이 방식으로 저장된 properties를 호출하여 해당 reference에 저장이 가능하며

    만약 properties의 값이 숫자 일 경우, int로도 저장이 가능합니다.

     

     

    위의 properties 저장 값을 System.out.println을 빌려 표현을 하게 된다면 아래와 같이 출력이 됩니다.

     

    중간에 설명드린것처럼 properties는 기본으로 String을 담고 있지만, 숫자일 경우 int로도 치환이 되는 것을 확인할 수 있습니다.

     

     

    ▼코드 알아보기

    package kr.co.softcampus.controller;
    
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.PropertySource;
    import org.springframework.context.annotation.PropertySources;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.GetMapping;
    
    @Controller
    
    @PropertySource("/WEB-INF/Properties/data1.properties") 
    @PropertySource("/WEB-INF/Properties/data2.properties")
     
    
    /*
    
    @PropertySource(value = { "/WEB-INF/Properties/data1.properties",
    "/WEB-INF/Properties/data2.properties"
      
    })
      
    @PropertySources({
    @PropertySource("/WEB-INF/Properties/data1.properties"),  
    @PropertySource("/WEB-INF/Properties/data2.properties") })*/
     
    public class TestController {
    
    	@Value("${pro.a1}")
    	private String a1;
    	
    	@Value("${pro.a2}")
    	private String a2;
    	
    	@Value("${pro.b1}")
    	private String b1;
    	
    	@Value("${pro.b2}")
    	private String b2;
    	
    	@Value("${pro.c1}")
    	private int c1;
    	
    	@Value("${pro.c2}")
    	private String c2;
    	
    	@Value("${pro.d1}")
    	private int d1;
    	
    	@Value("${pro.d2}")
    	private String d2;
    	
    	
    	
    	@GetMapping("/test")
    	public String test()
    	{
    		
    		System.out.println("a1 : "+a1);
    		System.out.println("a2 : "+a2);
    		System.out.println("b1 : "+b1);
    		System.out.println("b2 : "+b2);
    	
    		System.out.println("c1 : "+c1);
    		System.out.println("c2 : "+c2);
    		System.out.println("d1 : "+d1);
    		System.out.println("d2 : "+d2);
    	
    		System.out.println("c1 + d1 ="+(c1+d1));
    		
    		return "test1";
    	}
    }
    
    반응형

    댓글

    Designed by JB FACTORY