init

    Spring - 클래스 초기화 방법 비교 (PostConstruct, EventListener)

    예전에 Spring 프로젝트에서 Spring 기동 시 Bean으로 등록하는 클래스의 초기화 방법을 포스팅한 적이 있다. 이때는 Bean으로 등록하는 클래스가 정상적으로 생성되어 의존성 주입(DI)까지 끝난 후 초기화가 되도록 하는 방법으로 @PostConstrcut 어노테이션을 사용한 초기화 방법을 주 내용으로 기록하였었다. 이후 @EventListener(ApplicationReadyEvent.class)를 사용하여 초기화하는 방식도 알게 되어 두 방법의 차이점에 대해 기록하고자 한다. @PostConstruct 해당 어노테이션을 사용한 초기화 동작은 언급했듯 DI까지 다 끝나고 정상적으로 클래스가 생성된 이후 수행된다. 즉, 클래스가 생성된 직후 해당 어노테이션을 적용한 초기화 메서드가 실행된다고 보..

    Spring 기동시 bean 초기화 메서드 호출 방법

    구현을 하다보면 몇몇 bean에서 Spring 기동시 초기화가 되어야 하는 경우가 있는데 이에 대한 내용을 공유하고자 합니다. 생성자에서 초기화 메서드 호출 @PostConstruct annotation 사용 생성자에서 초기화 메서드 호출 @Component public class beanClass { public beanClass() { init(); } private init() { // init logic } } 위 예제 코드와 같이 생성자에 초기화 메서드를 호출하도록 하여 bean을 생성할 때 초기화 로직이 동작하도록 하는 방법이 있으나, 이는 DI를 이용하여 추가한 객체에 대한 로직이 init() 메서드에 포함이 되어있다면 에러가 발생하게 된다. @Component public class Bea..