구성 정보 제공
SpringContainer가 사용하는 구성 정보를 어떻게 오브젝트로 만들어서 컨테이너 내에 컴포넌트로 등록해두고 스프링 컨테이너 안에 들어있는 빈 오브젝트가 또 다른 오브젝트를 사용한다면(의존) 관계를 어떻게 맺어줄 것인지, 어느 시점에 오브젝트를 주입해 줄 것인지 등의 정보들을 SpringContainer에 구성정보로 제공해줘야 됨
구성 정보 제공 방법
- 외부 설정파일 이용
- Factory Method 이용
Factory Method
어떤 오브젝트를 생성하는 로직을 담고있는 메서드
구성 정보 제공 방법
- Factory Method에서 빈 오브젝트를 다 생성 및 의존관계 주입
- 리턴하는 오브젝트를 SpringContainer에게 빈으로 등록해서 이후 사용하라고 알려주는 것
ServletContainer와 비교
- SpringContainer : 서블릿을 등록하는 것처럼 서블릿 오브젝트를 직접 만들어서 넣어주는 것이 필요 없음
- Factory Mehtod : 빈 오브젝트를 직접 만들어서 넣으려고 함
- 일반적으로 항상 써야되는 방식은 아님. 필요할 때 사용
Factory Method 작성
public HelloController helloController() {
return new HelloController();
}
- HelloController 타입의 빈 오브젝트가 만들어짐
public HelloService helloService() {
return new SimpleHelloService();
}
- HelloService 타입의 빈 오브젝트가 만들어짐