티스토리 뷰
- 애플리케이션 실행
- 스프링 컨테이너 생성
- 애플리케이션이 시작되면서 스프링 컨테이너가 생성된다. 스프링 컨테이너는 스프링 빈을 생성 및 관리한다.
- 스프링 빈 등록
- 스프링 빈은 기본적으로 싱글톤으로 생성되어 스프링 컨테이너에 등록된다.
- 각 Bean의 인스턴스를 하나만 생성하고, 이를 모든 요청에 대해서 공유한다.
- @Configuration : 설정 클래스에 @Bean으로 등록된 객체를 스프링 빈으로 등록한다.
- @ComponentScan : @Component를 사용한 클래스를 스프링 빈으로 등록한다.
- 스프링 빈은 기본적으로 싱글톤으로 생성되어 스프링 컨테이너에 등록된다.
- 의존성 주입
- 생성된 빈들 간에 의존성을 주입한다. 필드 주입, 수정자 주입, 생성자 주입 방식이 사용된다.
- 초기화 콜백
- 추가적인 초기화 작업이 수행된다.
- ex. DB 연결 작업, 초기 데이터 로드
- @PostConstruct가 붙은 메서드를 호출하여 초기화 작업을 수행한다.
- 추가적인 초기화 작업이 수행된다.
- 비즈니스 로직 수행
- 소멸 콜백
- 스프링 컨테이너가 종료되기 전에 소멸 콜백이 호출된다.
- @Predestroy가 붙은 애너테이션을 호출하여 빈이 소멸되기 전에 필요한 정리를 한다.