03. properties

์™ธ๋ถ€์—์„œ ํŠน์ • ๊ฐ’๋“ค์„ ์ฃผ์ž…๋ฐ›์•„์•ผ ํ•  ๋•Œ, (DB์ ‘์† ์ •๋ณด ๋“ฑ) ์ด๋ฅผ ๊ฐ์ฒด๋ณ„๋กœ ์ฝ”๋”ฉํ•ด๋‘๋ฉด ๋ณ€๊ฒฝ์ด ์žˆ์„ ๋•Œ ์ฒ˜๋ฆฌํ•˜๊ธฐ ํž˜๋“ค์–ด์ง€๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๊ณ  public ์ €์žฅ์†Œ์— ์ €์žฅํ•˜๋ฉด ์™ธ๋ถ€์— ๋…ธ์ถœ๋  ๊ฐ€๋Šฅ์„ฑ๋„ ์žˆ๊ธฐ์— ์ค‘์š”ํ•œ ๊ฐ’๋“ค์€ properties ๋ผ๋Š” ํŒŒ์ผ์— ์ž‘์„ฑํ•ด๋‘๊ณ  ํ•„์š”ํ• ๋•Œ ๊ฐ’์„ ์ฃผ์ž…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค.

1๏ธโƒฃ ย properties ํŒŒ์ผ ์ž‘์„ฑ

  1. /WEB-INF/properties ๊ฒฝ๋กœ์— ํ™•์žฅ์ž๋ช…์„ .properties ๋กœ ์ƒ์„ฑํ•œ๋‹ค.

  2. โ€œ์–ด๋…ธํ…Œ์ด์…˜๋ช….ํด๋ž˜์Šค๋ช….ํ•„๋“œ๋ช… = ๊ฐ’โ€ ์˜ ํ˜•์‹์œผ๋กœ ์ ๋Š”๋‹ค.

#data1.properties
class.num1 = 10
class.string1 = ๋ฌธ์ž์—ด1

2๏ธโƒฃ ย ์ž‘์„ฑํ•œ properties ํŒŒ์ผ์„ ์ฃผ์ž…

  1. ์ž‘์„ฑํ•œ 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;
	}

}
  1. ๋“ฑ๋กํ•œ ๋นˆ์€ Controller์—์„œ ์ž๋™์ฃผ์ž… ๋ฐ›๋Š”๋‹ค.
public class SpringController {
	@Autowired
	ReloadableResourceBundleMessageSource res;
}

3๏ธโƒฃ ย properties ๊ฐ’์„ ์ฝ์–ด์˜ค๊ธฐ

  1. 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);
 }