Back/Spring

Spring Bean Life Cycle

호비시 2022. 6. 12. 09:00

Bean 은 Spring Container에 의해 생명주기가 관리된다.

출처 : https://blog.naver.com/rbals7398/222763832445

 

  1. Container 시작
  2. Bean 인스턴스화
  3. Dependenceis Injection 의존성 주입
  4. Custom Init Method
  5. Custom Destory Method
  6. END

1, 2 ,3 과정을 통해 Bean 이 Container에 등록되고 Bean을 사용 할 수 있게 된다.

4 에서 우리가 만든 메소드에서 빈을 이용할 수 있고

5 우리의 프로그램이 끝나게 되면 Bean 의 LifeCycle도 끝나게된다.

Bean Lifecycle 을 고려하지 않고 Bean을 등록해놓고 @Autowired로 주입받아 사용하다 보면 아직 등록하지 않은 Bean들을 사용 할 수 없다는 메시지를 받는다고한다.

스프링이 알아서 순서를 바꿔 참조되는 Bean을 먼저 생성해주기 때문에 스프링에선 문제가 되지 않는다

만약 Bean 생성순서가 뒤바뀌어서 로직에 문제가 생긴다면

@PostConstruct 어노테이션을 사용Bean이 완전히 주입된 후에 작동하도록 하여 해결할 수 있다.