본문 바로가기
Backend/Spring

@PostConstruct

by 박상윤 2023. 12. 13.

@PostConstruct란?

@PostConstruct는 의존성 주입이 이루어진 후 초기화를 수행하는 메서드

 

 

사용하는 이유

(1) 생성자가 호출된 경우, Bean은 초기화가 되지 않았다.

@PostConstruct를 사용하면 Bean이 초기화 됨과 동시에 의존성을 확이할 수 있다.

 

(2) bean lifecycle에서 오직 한 번만 수행이된다.

bean이 여러번 초기화 되는 것을 방지할 수 있다.

 

코드 사용

@Value("${jwt-secret-key}")
private String secretKey;

@Value("${jwt-access-token-expiration-time}")
private long ACCESS_TOKEN_EXPIRED_TIME;

@Value("${jwt-refresh-token-expiration-time}")
private long REFRESH_TOKEN_EXPIRED_TIME;

private SecretKey key;

@PostConstruct
public void init(){
    this.key = Keys.hmacShaKeyFor(Decoders.BASE64.decode(secretKey));
}

 

secretKey를 사용하기 위해서 주입이 이루어지고 난 후 시점에 key를 초기화해주는 로직에 사용했다.