더북(TheBook)

3.4.1 빈과 빈 팩터리

스프링의 의존성 주입 컨테이너의 핵심은 빈 팩터리(BeanFactory) 인터페이스입니다. 컴포넌트를 관리하는 BeanFactory는 컴포넌트의 라이프사이클뿐만 아니라 의존성까지 관리합니다. 스프링에서 빈(bean)이라는 용어는 컨테이너가 관리하는 모든 컴포넌트를 나타냅니다. 일반적으로 스프링의 빈을 작성하다 보면 자바빈 사양을 어느 정도 준수하게 되지만 꼭 그래야 하는 것은 아닙니다. 특히 생성자 주입을 사용해 빈을 서로 연결하려 할 때는 더욱 그렇습니다.

애플리케이션에서 DI 기능만 필요하다면 BeanFactory 인터페이스를 이용해 스프링 DI 컨테이너와 직접 연동할 수 있습니다. 이때는 애플리케이션에서 BeanFactory 인터페이스를 구현한 클래스의 인스턴스를 생성하고 빈과 의존성 정보를 구성해야 합니다. 이 작업이 완료되면 애플리케이션은 BeanFactory를 통해 빈에 접근해 필요한 일을 처리할 수 있습니다.

상황에 따라 이 설정은 모두 자동으로 이루어집니다. 예를 들어 웹 애플리케이션에서 스프링의 ApplicationContext는, 웹 컨테이너가 웹 애플리케이션을 시작하는 도중에 web.xml 디스크립터 파일에 선언된 ContextLoaderListener 클래스(스프링이 제공)를 이용해서 부트스트랩합니다. 하지만 대부분은 직접 BeanFactory를 설정해야 합니다. 3장의 모든 예제에서는 BeanFactory 구현체의 초기 설정을 직접 해야 합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.