의존 오브젝트 추가
스프링 컨테이너는 어떤 타입의 오브젝트를 만들때 딱 한번만 생성합니다. 스프링 컨테이너가 가지고 있는 오브젝트를 필요로 하는 여러 오브젝트들이 있을 수 있는데 스프링 컨테이너에 어떤 타입의 빈을 요청할때마다 새로운 오브젝트를 만들어서 제공하는게 아니라 초기에 생성해둔 오브젝트 단하나를 계속해서 제공하여 재사용할 수 있게 합니다. 스프링 컨테이너는 싱글턴 패턴을 사용한 것과 유사하게 어떤 타입의 오브젝트를 딱 한번만 만들어두고 이 오브젝트를 계속 재상용할 수 있게 해주는 기능을 제공합니다. 그래서 스프링 컨테이너를 싱글톤 레지스트리라고도 부릅니다.
이제 HelloController의 책임을 줄여보도록 하겠습니다. HelloController는 클라이언트의 요청만 검증하고 비즈니스 로직은 SimpleHelloService가 처리하도록 하여 의존 오브젝트를 구현하도록 하겠습니다.
HelloController.class
package com.tobyspring.tobyspringboot;
import java.util.Objects;
public class HelloController {
public String hello(String name) {
/*
의존오브젝트를 직접 new를 통해 SimpleHelloService를 생성하여 요청을
전달합니다.
*/
SimpleHelloService helloService = new SimpleHelloService();
return helloService.sayHello(Objects.requireNonNull(name));
}
}
SimpleHelloService.class
package com.tobyspring.tobyspringboot;
public class SimpleHelloService {
String sayHello(String name) {
return "Hello " + name;
}
}
'Spring > 인프런 토비의 Spring Boot' 카테고리의 다른 글
섹션 4-4 [독립 실행형 스프링 애플리케이션] 의존 오브젝트 DI 적용 (2) | 2024.06.01 |
---|---|
섹션 4-3 [독립 실행형 스프링 애플리케이션] 의존성 역전 (1) | 2024.06.01 |
섹션 4-1 [독립 실행형 스프링 애플리케이션] 스프링 컨테이너 사용 (0) | 2024.06.01 |
섹션 3-7 [독립 실행형 서블릿 애플리케이션] Hello 컨트롤러 맵핑과 바인딩 (0) | 2024.05.30 |
섹션 3-6 [독립 실행형 서블릿 애플리케이션] 프론트 컨트롤러 전환 (1) | 2024.05.30 |