기본 _ Ch.8

yuKeon·2022년 11월 13일
0

Spring_Core

목록 보기
8/8
post-thumbnail

1. 스프링 빈의 라이프 사이클

  1. 스프링 컨테이너 생성
  2. 스프링 빈 생성
  3. 의존관계 주입
  4. 초기화 콜백
  5. 사용
  6. 소멸전 콜백
  7. 스프링 종료

빈 생명주기 콜백 지원 방법

  • 인터페이스(InitializingBean, DisposableBean)
  • 초기화 및 종료 메서드를 설정 정보에 지정
  • @PostConstruct, @PreDestroy 애노테이션 지원 ⭐️⭐️⭐️

2. 인터페이스(InitializingBean, DisposableBean)

public class NetworkClient implements InitializingBean, DisposableBean {
		
		@Override
    public void afterPropertiesSet() throws Exception {
			connect();
			call("초기화 연결 메시지");
}

    @Override
    public void destroy() throws Exception {
        disConnect();
    }
}
  • InitializingBean : afterPropertiesSet() 메서드로 초기화 지원
  • DisposableBean : destroy() 메서드로 소멸 지원

특징

  • 스프링 전용 인터페이스
  • 해당 코드가 스프링 전용 인터페이스에 의존
  • 초기화, 소멸 메서드의 이름을 변경할 수 없음
  • 내가 코드를 고칠 수 없는 외부 라이브러리에 적용할 수 없다.
    → 거의 사용 안 함

3. 초기화 및 종료 메서드를 설정 정보에 지정

public void init() {}

public void close() {}

@Bean(initMethod = "init", destroyMethod = "close")
public NetworkClient networkClient() {}

특징

  • 메서드 이름을 자유롭게 줄 수 있음
  • 스프링 빈이 스프링 코드에 의존하지 않음
  • 설정 정보를 사용하기 때문에 코드를 고칠 수 없는 외부 라이브러리에도 초기화, 종료
    메서드를 적용할 수 있음

4. @PostConstruct, @PreDestroy 애노테이션 지원

@PostConstruct
public void init() {}

@PreDestroy
public void close() {}

특징

  • 최신 스프링에서 가장 권장하는 방법, 매우 편리
  • 스프링이 아닌 다른 컨테이너에서도 동작한다.
  • 컴포넌트 스캔과 잘 어울린다.

5. 결론

@PostConstruct, @PreDestroy 애노테이션 지원을 사용하자❗️

0개의 댓글