생명주기 (2) 썸네일형 리스트형 1-4) 스프링 빈 생애주기(Life Cycle) 관련 기능 : BeanPostProcessor, @PostConstruct, @PreDestroy - 스프링의 빈 생애주기 관리 스프링은 DI 컨테이너로서 기능하면서, 빈의 생명주기를 관리한다. 빈의 스코프에 따라서 객체를 생성하고, 의존성의 주입하여 사용할 수 있게 해준다. 또 때가 되면, 해당 객체를 제거한다. 이렇게 객체의 생성과 초기화, 제거를 아우르는 흐름을 생명 주기라고 하고, 스프링에서는 개발자가 특정 시점에 동작하는 코드를 작성할 수 있도록 한다. 이 글에서는 BeanPostProcessor, @PostConstruct, @PreDestroy를 다루겠다. - 빈의 초기화 시점 : BeanPostProcessor BeanPostProcessor를 상속받아서 메소드를 구현하면 초기화 전후에 실행되는 코드를 작성할 수 있다. 여기서 말하는 초기화는 스프링에 의해 의존성 주입이 완료된 이후에 .. 1-2) 스프링 DI 스코프 관리 : @Bean, @Component, @Scope, @Lookup, proxyMode - DI 컨테이너의 컴포넌트 스코프(생명주기) 관리 DI 컨테이너는 등록된 객체들에 의존성을 주입하는 일 뿐 아니라, 그들의 스코프(생명주기)를 관리하는 일도 수행한다. 기본적으로 컨테이너에 등록되면 싱글톤(Singleton) 스코프를 적용한다. 싱글톤 스코프에서는 프로그램 시작부터 끝까지, 하나의 객체만을 사용한다. @Component class SingletonBean{ public SingletonBean(){ System.out.println("SingletonBean Constructor"); } ... } ... ApplicationContext context = new AnnotationConfigApplicationContext(AppContext.class); SingletonBean s.. 이전 1 다음