Properties
애플리케이션을 개발할 때 프로그램 실행 중 절대 변하지 않는 값들을 사용할 때 properties 파일에 작성하고 가져다 사용할 수 있도록 제공하는 설정파일
1. 프로젝트에서 properties 파일 만들기
WebContent/WEB-INF 아래에만 만들면 상관없지만 properties 파일의 종류가 여러개 일 수 있기 때문에 properties 폴더를 생성 후 해당 폴더에 properties 파일을 만들었습니다.
properties 폴더 마우스 오른쪽버튼 클릭 > New > File 클릭
파일명.properties 로 파일명을 지정하고 Finish 버튼 클릭
(저는 data1.properties 로 지정하였습니다.)
생성한 data1.properties 파일에
aaa.a1 = 100
aaa.a2 = 문자열
로 입력하였습니다.
그러나 문자는 한글 그대로가 아닌 유니코드의 형태로 자동 저장됩니다.
그래서 property Editor 를 설치하여 유니코드 형태가 아닌 한글로 확인할 수 있도록 해줍니다.
2. Property Editor 설치
상단 메뉴바 Help > Install New Software... 클릭
Install 화면에서 Add.. 클릭
Name 은 편한대로 지정하고 (저는 Property Editor 로 하였습니다.)
Location 은 http://propedit.sourceforge.jp/eclipse/updates 로 입력해주세요.
입력 후 Add 버튼 클릭
조금 기다려줍니다!
목록들이 뜨면 PropertiesEditor 에 체크 후 Next 버튼 클릭!
Next 버튼 클릭
약관 동의 체크 후 Finish 버튼 클릭
또 잠시 기다려줍니다.
Security Warning 팝업이 표시되면 Install anyway 버튼 클릭
이클립스 재시작을 위해 Restart Now 클릭
이클립스 재시작 후 data1.properties 파일을 닫고 다시 열면 이제 한글로 확인할 수 있습니다..!
3. Controller 에서 properties 사용하기
data1.properties
########## data1.properties ##########
aaa.a1 = 100
aaa.a2 = 문자열1
bbb.b1 = 200
bbb.b2 = 문자열2
data2.properties
########## data2.properties ##########
ccc.c1 = 300
ccc.c2 = 문자열3
ddd.d1 = 400
ddd.d2 = 문자열4
Bear27Controller.java
사용할 properties 파일 지정하기
@PropertySource 또는 @PropertySources 를 사용하여 3가지 방법으로 properties 파일을 지정할 수 있습니다.
@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")
})
properties 파일에 작성한 값 주입받기
@Value("${aaa.a1}")
private int a1;
@Value("${aaa.a2}")
private String a2;
전체 Controller Source
package com.my.spring.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;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/bear27")
//@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 Bear27Controller {
private String TAG = "===== "+Bear27Controller.class.getSimpleName()+" >> ";
@Value("${aaa.a1}")
private int a1;
@Value("${aaa.a2}")
private String a2;
@Value("${bbb.b1}")
private String b1;
@Value("${bbb.b2}")
private String b2;
@Value("${ccc.c1}")
private String c1;
@Value("${ccc.c2}")
private String c2;
@Value("${ddd.d1}")
private String d1;
@Value("${ddd.d2}")
private String d2;
@GetMapping("/test01")
public String test01() {
System.out.printf(TAG+"test01() - aaa.a1 : %s\n", a1);
System.out.printf(TAG+"test01() - aaa.a2 : %s\n", a2);
System.out.printf(TAG+"test01() - bbb.b1 : %s\n", b1);
System.out.printf(TAG+"test01() - bbb.b2 : %s\n", b2);
System.out.printf(TAG+"test01() - ccc.c1 : %s\n", c1);
System.out.printf(TAG+"test01() - ccc.c2 : %s\n", c2);
System.out.printf(TAG+"test01() - ddd.d1 : %s\n", d1);
System.out.printf(TAG+"test01() - ddd.d2 : %s\n", d2);
return "bear27/test01";
}
}
'📗 스프링 Spring' 카테고리의 다른 글
[스프링/Spring] Spring MVC 유효성 검사 (0) | 2021.05.17 |
---|---|
[스프링/Spring] Message (0) | 2021.05.14 |
[스프링/Spring] 요청방식 (@RequestMapping / @GetMapping / @PostMapping) (0) | 2021.05.13 |
[스프링/Spring] URL Mapping (0) | 2021.05.13 |
[스프링/Spring] Spring MVC 세팅 Java (0) | 2021.05.13 |