Spring @PostConstruct

By | 2020년 11월 24일

스프링으로 개발하다 보면 객체가 생성될때 초기화 작업을 하고 싶을때가 있다.

이럴때 클래스의 생성자에 코드를 많이 넣는데 만약 value injection 된 값을 가지고 할경우에 두가지 방법이 있다.

첫번째로

생성자 부분에 @Value 어노테이션을 사용해 값을 주입하는 방법

public Crypto(@Value("${crypto.service:none}") String encryptionMethod) {
 this.encryptionMethod = encryptionMethod;
 myFunc(encryptionMethod);
}

두번째로

@PostContruct를 활용하는 방법

  public Crypto(String encryptionMethod) {
    this.encryptionMethod = encryptionMethod
  }

  @PostConstruct
  public void init() {
    myFunc(encryptionMethod);
  }

@PostContruct는 Injection이 끝난 후에 실행되기 때문에 가능하다.