
실습 중 위와 같은 코드를 보게되었다.
처음 한 번만 실행하게 해주는 역할이라고 하는데,
'🙄생성자로 실행하면 되는 것 아닌가?' 라고 생각했기에 좀 더 이해가 필요한 부분이었다.
어떤 Bean 클래스 안에서,
딱 한 번만 호출하려는 메서드에 @PostConstruct를 사용할 수 있다.
@Component
public class myClass {
	...
    
    @PostConstruct
    public void init() {
    	...
    }
}Bean의 DI 이후에 실행되기 때문이다.
호출 순서를 알아보면,
- Bean으로 등록되는 과정에서 클래스 객체가 먼저 생성이 되며 (생성자가 호출)
- Bean에서 필요한 DI(의존성 주입)가 실행됨
- PostConstruct 메서드 호출
이다.
Bean이 의존성 주입 이후에 실행해야하는 초기화 작업이라면 @PostConstruct를 사용하도록 한다.