더북(TheBook)

스프링 프레임워크는 의존성 주입Dependency Injection이라는 한 가지 단순한 원칙에 기반을 두고 있다. 의존성 주입은 수년간 존재해온 디자인 패턴design pattern으로, 인터페이스 설계에 기반을 두고 세터setter 또는 생성자를 통해 클래스들 사이에서 협력 및 상호 작용하는 모든 의존성과 구현체를 주입하는 방식으로 동작한다. 스프링 프레임워크는 이 객체들 간 상호 작용과 협력을 모두 다룰 수 있는 컨테이너container를 생성한다.

간단한 이 예제는 인터페이스 한 개를 정의한다. 메인 클래스에서는 helloWorldMessageService 메서드에 @Bean 애너테이션을 사용해 이 인터페이스의 구현체를 주입하고 있다. 이 애너테이션은 HelloWorldMessage 클래스가 구현체며 언젠가 사용될 것이라고 스프링 프레임워크 컨테이너에 알린다.

다음으로, main 메서드에서는 ApplicationContext 클래스를 사용해 스프링 컨테이너를 호출하고 있다. 이 클래스는 다른 애너테이션(@Configuration, @ComponentScan, @Bean)의 도움을 얻어 컨테이너를 생성하고 모든 것을 사용할 수 있게 준비한다. 따라서 context.getBean 메서드를 호출할 시점에 스프링 컨테이너는 어떤 객체를 사용할지 이미 알고 있다.

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