본문 바로가기
자바

[Java] @value 어노테이션을 통해 의존성 주입시 주의사항

by 책 읽는 개발자_테드 2021. 8. 30.
반응형

@Value 어노테이션을 통해 클래스 필드에 의존성 주입을 할 경우 객체가 생성되고 난 후 주입된다.

즉, 객체 생성자가 실행되는 시점에선 @Value 값이 null이 되므로 주의해야한다.

 

대안으로 @Value 로 주입받은 값을 사용할 메소드를 따로 생성하고, @PostConstruct 어노테이션을 표시하여 사용할 수 있다.

@Component("simgRealtimeInsurance")
public class SimgRealtimeInsurance {
    @Value("${SIMG_SERVER_URL}")
    private String SERVER;
    private String URL_DRVING_INFO_SEND;
    private String URL_DRVING_INFO_BATCH_SEND;
    
    @Resource(name = "simgHttpClient")
    SimgHttpClient httpClient;
    
    @PostConstruct
    public void init() {
        URL_DRVING_INFO_SEND =  SERVER + "/api/v1/driving/in/live";
        URL_DRVING_INFO_BATCH_SEND = SERVER + "/api/v1/driving/in/batch";
    }
반응형

댓글