스프링의 @Value 어노테이션은 @ConfigurationProperties처럼 외부 설정 값을 가져오기 위해 사용됩니다.
@ConfigurationProperties는 외부 설정 값을 객체로 매핑할 때 사용되고, @Value는 단일 값을 매핑할 때 사용합니다.
@Value 사용법
다음과 같이 외부 설정 값을 구성하겠습니다.
# application.properties
app.test.name=Test App Name
app.test.additional.property1: property1
app.test.additional.property2: property2
# application.yml
app:
test:
name: Test App Name From YML
additional:
property1: property1
property2: property2
설정한 값을 @Value로 가져오고 싶을 때 다음과 같이 사용할 수 있습니다.
@RestController
public class DemoRestController {
@Value("${app.test.name}")
private String name;
@GetMapping("/value")
public String getValue() {
return name;
}
}
Controller 단에서 외부 설정값을 가져왔습니다.
@Value로 가져온 외부 설정값을 응답값으로 반환하는 API 입니다.\
외부 설정 값을 잘 가져온 것을 확인할 수 있습니다.
고정 값 사용
@RestController
public class DemoRestController {
@Value("Fix Text")
private String fixText;
@GetMapping("/fix")
public String getFixText() {
return fixText;
}
}
@Value 어노테이션에 표현식이 아닌 문자열을 그대로 넣으면 고정값으로 들어갑니다.