개발 기록

스프링 빈 라이프 사이클 본문

JAVA/스프링

스프링 빈 라이프 사이클

수염차 2022. 3. 14. 12:02

스프링 빈의 이벤트 라이프 사이클 (싱글톤의 경우)

스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용(애플리케이션 동작) -> 소멸전 콜백

-> 스프링 종료

 

*스프링은 의존관계 주입이 완료되면 스프링 빈에게 콜백 메서드를 통해 초기화 시점을 알려주는 기능 제공

*방법은 여러가지이지만 애노테이션을 주로 사용

 //의존관계 주입 완료 후 실행 메소드
    @PostConstruct
    public void init() {
        connect();
        call("초기화 연결 메세지");
    }

    //컨테이너 종료시 호출
    @PreDestroy
    public void close() {
        disconnect();
    }

 

 

* 객체 생성시 생성자에서 처리하면 되지 않을까?! ( 의존관계 주입을 다 생성자 주입으로 )

--> 객체의 생성과 초기화는 분리하는 것이 좋음

--> 초기화는 생성된 값을 활용해서 외부 커넥션을 연결하는 등 무거운 동작을 수행함

--> 생성자 안에서 무거운 초기화 작업을 같이 하지 않는 것이 유지보수 관점에서 좋다.

 

'JAVA > 스프링' 카테고리의 다른 글

스프링 DB 1편 - 데이터 접근 핵심 원리 후기  (1) 2022.10.27
빈 스코프  (0) 2022.03.15
조회한 빈이 모두 필요할 때, List, Map  (0) 2022.03.10
다양한 의존관계 주입 방법  (0) 2022.03.10
싱글톤  (0) 2022.03.07
Comments