Bean 객체의 Lifecycle
- Bean 객체가 생성 또는 소멸될때 특정 코드를 실행하게 할 수 있다.
-
@PostConstruct, @PreDestroy Annotation 사용
1// Bean 객체 생성될 때 실행 2@PostConstruct 3public void postConstruct() {...} 4 5// Bean 객체 소멸될 때 실행 6@PreDestroy 7public void preDestroy() {...}
-
InitializingBean, DisposableBean 구현
1public class Client implements InitializingBean, DisposableBean { 2 // Bean 객체 생성될 때 실행 3 @Override 4 public void afterPropertiesSet() throws Exception {...} 5 6 // Bean 객체 소멸될 때 실행 7 @Override 8 public void destroy() throws Exception {...} 9}
-
@Bean Annotation에서 설정
1@Bean(initMethod = "init", destroyMethod="close") 2public class Client2{ 3 // Bean 객체 생성될 때 실행 4 public void init() {...} 5 // Bean 객체 소멸될 때 실행 6 public void close() {...} 7}
Bean 객체의 Scope
- 기본적으로 Bean 객체는 Singleton scope를 갖는다
- 하지만 임의로 Prototype scope를 갖게 할 수 있다.
1@Configuration 2public class AppCtx { 3 @Bean 4 @Scope("prototype") 5 public Client client() {} 6}