03. properties
์ธ๋ถ์์ ํน์ ๊ฐ๋ค์ ์ฃผ์ ๋ฐ์์ผ ํ ๋, (DB์ ์ ์ ๋ณด ๋ฑ) ์ด๋ฅผ ๊ฐ์ฒด๋ณ๋ก ์ฝ๋ฉํด๋๋ฉด ๋ณ๊ฒฝ์ด ์์ ๋ ์ฒ๋ฆฌํ๊ธฐ ํ๋ค์ด์ง๋ ๋จ์ ์ด ์๋ค. ๊ทธ๋ ๋ค๊ณ public ์ ์ฅ์์ ์ ์ฅํ๋ฉด ์ธ๋ถ์ ๋ ธ์ถ๋ ๊ฐ๋ฅ์ฑ๋ ์๊ธฐ์ ์ค์ํ ๊ฐ๋ค์ properties ๋ผ๋ ํ์ผ์ ์์ฑํด๋๊ณ ํ์ํ ๋ ๊ฐ์ ์ฃผ์ ํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
1๏ธโฃ ย properties ํ์ผ ์์ฑ
/WEB-INF/properties ๊ฒฝ๋ก์ ํ์ฅ์๋ช ์ .properties ๋ก ์์ฑํ๋ค.
โ์ด๋ ธํ ์ด์ ๋ช .ํด๋์ค๋ช .ํ๋๋ช = ๊ฐโ ์ ํ์์ผ๋ก ์ ๋๋ค.
#data1.properties
class.num1 = 10
class.string1 = ๋ฌธ์์ด1
2๏ธโฃ ย ์์ฑํ properties ํ์ผ์ ์ฃผ์
- ์์ฑํ properties ํ์ผ์ ์ฝ์ด์ค๊ธฐ ์ํด ReloadableResourceBundleMessageSource (์ดํ res) ๋ฅผ [ServletAppContext] ํด๋์ค์ ์คํ๋ง ๋น์ผ๋ก ๋ฑ๋กํ๋ค.
public class ServletAppContext implements WebMvcConfigurer{
//Bean name = "ํ๋กํผํฐ๋ช
"
@Bean(name = "messageSource")
public ReloadableResourceBundleMessageSource source() {
ReloadableResourceBundleMessageSource res = new ReloadableResourceBundleMessageSource();
res.setBasename("/WEB-INF/properties/data1");
return res;
}
}
- ๋ฑ๋กํ ๋น์ Controller์์ ์๋์ฃผ์ ๋ฐ๋๋ค.
public class SpringController {
@Autowired
ReloadableResourceBundleMessageSource res;
}
3๏ธโฃ ย properties ๊ฐ์ ์ฝ์ด์ค๊ธฐ
- res ์ getMessage ๋ฉ์๋๋ก ํ๋กํผํฐ ๊ฐ์ ์ฝ์ด์ฌ ์ ์๋ค.
public String t1(Model model, Locale locale) {
String str1 = res.getMessage("class.num1", null, null);
String str2 = res.getMessage("class.string1", null, null);
}