[springboot] @value null in constructor / @PostConstruct

@Value("${mail.port}")
private int mailPort;

@Value("${mail.id}")
private String mailId;

public Class() {
System.out.println(mailPort); // null
}

@PostConstruct
public void init() {
System.out.println(mailPort); // 8080
}


spring에서 위와같이 vlaue값을 생성자에서 쓰려고 하면 null 값이 나온다

생성자 실행후에 각각의 값에 properties값들이 주입되기때문인데.. 이럴경우 

@PostConstruct를 이용해서 초기화하면 주입된값을 정상적으로 사용할수 있다.