기본 사용법
스프링에서 application.properties
나 yml
에서 저장한 값을 불러오기 위해서 @Value
에너테이션을 사용할 수 있습니다.
@Value("${app.name}")
private String name;
그런데 이 방식으로는 final
키워드를 적용할 수 없습니다. 그래서 부주의로 값이 변경될 수도 있습니다.
final과 함께 사용
final
키워드를 지정하고 싶다면, 생성자 주입 방식을 사용할 수 있습니다.
public class MyClass {
private final String myName;
public MyClass(@Value("${app.name}") String myName) {
this.myName = myName;
}
}
static에서 사용
생성자 주입 방식으로 final
을 사용할 수 있지만, static
키워드를 지정할 수 없습니다.
setter
주입 방식을 사용해서 static
필드 값을 외부에서 주입할 수 있습니다.
public class SomeClass {
private static String name;
@Value("${app.name}")
public void setName(String name) {
SomeClass.name = name;
}
}