Bean 객체의 라이프 사이클
Bean 객체는 크게 생성, 의존주입, 초기화, 소멸에 대한 라이프 사이클을 가지게 됩니다.
컨테이너의 생성과 소멸에 연관되어져 있으며 컨테이너 생성시에 Bean 객체를 생성하고 의존을 주입하고 초기화 하는 과정을 거칩니다.
컨테이너 소멸시 Bean객체를 소멸하는데 이때 싱글톤 타입이 아닌 프로토 타입의 경우에는 자동 소멸 되지 않으므로 명시적으로 소멸 해야합니다.
Bean 객체의 생성과 소멸시 InitailizingBean 과 DisposableBean 인터페이스를 구현하여 수행 시킬 수 있는데 afterPropertiesSet()와 destroy() 메소드를 구현하면 됩니다.
이 두 인터페이스를 구현하여 메소드를 사용할 수 없는 경우 커스텀 메소드를 사용하여 구현할 수 있습니다.
@Bean 어노테이션의 속성으로 initMethod, destroyMethod에 메소드 이름을 지정함으로써 초기화와 소멸을 설정할 수 있으며 해당 메소드는 인자를 가져서는 안됩니다.
이 두 메소드는 각각 afterPropertiseSet()보다 먼저 수행되고 destroy()메소드보다 나중에 수행됩니다.
기본적으로 @Bean 어노테이션을 사용하여 객체를 등록하면 싱글톤 타입으로 생성이됩니다.
이때 @Scope어노테이션을 사용하면 스코프를 지정할수 있습니다.
@Scope("prototype")으로 작성할 경우 프로토 타입의 객체로 생성되며 getBean시 새로운 객체를 생성하여 제공합니다.
명시적으로 @Scope("singletone")으로 작성하여 나타낼 수도 있습니다.
프로토타입은 자동 소멸 되지 않으므로 소멸처리를 직접해야합니다.
'학습(구) > Spring 요약' 카테고리의 다른 글
Spring - DB (0) | 2020.10.19 |
---|---|
Spring - AOP (0) | 2020.10.18 |
Spring - 자동 Bean 등록 (0) | 2020.10.16 |
Spring - 자동 의존 주입 (0) | 2020.10.15 |
Spring - DI(의존주입) (0) | 2020.10.15 |