본문 바로가기
자바

[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";
    }
반응형

댓글