[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