Skip to content

Latest commit

ย 

History

History
76 lines (69 loc) ยท 1.69 KB

File metadata and controls

76 lines (69 loc) ยท 1.69 KB

@Value

Property ๊ฐ’ ์ฃผ์ž…

  • Spring boot ํ”„๋กœ์ ํŠธ๊ฐ€ ์ปค์ง€๋ฉด์„œ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ธ€๋กœ๋ฒŒ ๊ฐ’์„ ๋ณ„๋„๋กœ ๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ ๋ฐœ์ƒ
  • @Value ์–ด๋…ธํ…Œ์ด์…˜
    • properties (๋˜๋Š” yaml) ํŒŒ์ผ์•  ์ƒˆํŒ…ํ•œ ๋‚ด์šฉ์„ ๋ณ€์ˆ˜์— ์ฃผ์ž…ํ•˜๋Š” ์—ญํ•  ์ˆ˜ํ–‰

@Value ์‚ฌ์šฉ

  1. ์ผ๋ฐ˜์ ์ธ ์ž…๋ ฅ๊ฐ’ ์ฃผ์ž…
public class TestClass {
	@Value("Hello World!")
	private String helloWorld;
	
	@Value("1.234")
	private double doubleValue;
	
	@Value("123")
	private Integer integerValue;
	
	@Value("true")
	private Booleans booleanValue;
	
	@Value("20L")
	private long longValue;
}
  1. ${...} ์‚ฌ์šฉ: properties ๊ฐ’ ์ฃผ์ž…
    • ํ•ด๋‹น ์†์„ฑ๊ฐ’์€ ๋Ÿฐํƒ€์ž„์— ๋ณ€์ˆ˜๋กœ ์ €์žฅ๋˜๋ฉฐ, ์†์„ฑ๊ฐ’์ด properties ํŒŒ์ผ์— ์—†๋Š” ๊ฒฝ์šฐ ์—๋Ÿฌ ๋ฐœ์ƒ
# application.properties
hello.message=Hello World!
public class TestClass {
	@Value("${hello.message}")
	private String helloWorld;
}
public class TestService {
	private String val1;
	private String val2;
	
	// ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋„˜๊ธฐ๋ฉด์„œ ์ฃผ์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค.
	public TestService(
		@Value("val1") String val1,
		@Value("val2") String val2
	) {
		this.val1 = val1;
		this.val2 = val2;
	}
}
  1. ${...} ์‚ฌ์šฉํ•˜์—ฌ List ์ฃผ์ž…
# application properties
color.list=red,blue,green
public class TestClass {
	@Value("${color.list}")
	private List<String> colorList;
}
  1. #{${...}} ์‚ฌ์šฉํ•˜์—ฌ Map ์ฃผ์ž…
# application properties
my.config={url:'http://localhost:8081', profile:'local', key:'123456'}
public class TestClass {
	@Value("#{${my.config: {url:'http://localhost:8081', profile:'local', key:'123456'}}}")
	private Map<String, String> configMap;
}