@ConfigurationProperties 와@Value 사용 상의 차이 점

2155 단어 Spring자바
@ConfigurationProperties 와@Value 의 공통점 은 설정 파일 에서 설정 항목 을 읽 는 것 입 니 다.
한 가지 차이 점 을 발 견 했 습 니 다.제 프로젝트 설정 에 설정 되 어 있 지 않 습 니 다hello.msg첫 번 째 코드 를 사용 할 때 시작 한 후에 msg 를 null 로 읽 었 고 두 번 째 코드 는 이상 을 던 집 니 다.두 번 째 코드 는 설정 항목 이 누락 되 는 것 을 방지 하 는 것 이 좋 습 니 다.누락 되 었 을 때 프로그램 을 시작 하 는 데 오류 가 발생 할 수 있 습 니 다.이렇게 하면 설정 항목 이 누락 되 어 발생 하 는 BUG 를 피 할 수 있 습 니 다.
첫 번 째 코드
import org.springframework.boot.context.properties.ConfigurationProperties;

@ConfigurationProperties("hello")
public class HelloProperties {
    private String msg;

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }
}

2 단 코드
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class Hello2Properties {
    @Value("${hello.msg}")
    private String msg;

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }
}

좋은 웹페이지 즐겨찾기