[Spring] PostConstruct

White 와잇·2024년 5월 29일
0

Spring

목록 보기
4/9
post-thumbnail

@PostConstruct

실습 중 위와 같은 코드를 보게되었다.
처음 한 번만 실행하게 해주는 역할이라고 하는데,
'🙄생성자로 실행하면 되는 것 아닌가?' 라고 생각했기에 좀 더 이해가 필요한 부분이었다.

사용법

어떤 Bean 클래스 안에서,
딱 한 번만 호출하려는 메서드에 @PostConstruct를 사용할 수 있다.

@Component
public class myClass {
	...
    
    @PostConstruct
    public void init() {
    	...
    }
}
  • 직접 메서드를 호출하지 않아도 자동으로 실행된다. (실행 시점은 다음 문단에 설명)
  • Bean Lifecycle 동안 한 번만 호출되는 것을 보장한다. (두 번 이상 실행되지 않음)

생성자를 사용하지 않는 이유

Bean의 DI 이후에 실행되기 때문이다.

호출 순서를 알아보면,

  1. Bean으로 등록되는 과정에서 클래스 객체가 먼저 생성이 되며 (생성자가 호출)
  2. Bean에서 필요한 DI(의존성 주입)가 실행됨
  3. PostConstruct 메서드 호출

이다.

결론

Bean이 의존성 주입 이후에 실행해야하는 초기화 작업이라면 @PostConstruct를 사용하도록 한다.

profile
웹개발 도전! 데브옵스 도전!

0개의 댓글