BookMemory / BookDB
메모리에 저장할지 DB에 저장할지 역할만 바꾸고 싶은데(레포지토리는 다른데)
서비스의 소스까지 변경을 해야한다. 이걸 바꿀수 없을까?
인터페이스로 활용은 했지만 뭔가 부족하다
이걸 컨테이너가 주체 하는 것
직접 인스턴스를 만드는게 아니라 스프링 빈으로 활용해서 넣도록
그래서 직접 new를 쓰는게 아니라 컨테이너가 역할 하는 것이 제어의 역전. (IoC)
그래서 그 서비스에 객체를 넣어주는 과정을 의존성 주입(DI)라고 한다
그럼 어떤걸 넣어줄지는 어떻게 선택?
단순 인터페이스로 넣어버리면 어떤것을 불러올지 모름
이럴 때 쓰는 것이 Primary 어노테이션
당장 예시의 2개로는 효과가 안보이겠지만
참조가 100개 500개가 된다면 해당되는 모든 파일을 수정해야함
'JAVA&스프링' 카테고리의 다른 글
| [Spring] 스프링 컨테이너를 다루는 방법 (Bean , Configuration , Component) (1) | 2025.06.22 |
|---|---|
| JAVA JVM 힙 영역과 GC(Garbage Collector) (1) | 2025.06.13 |
| JAVA 스택 영역(Stack area) (0) | 2025.06.13 |
| JAVA JVM 런타임 데이터 영역 & 메소드 영역/데이터 영역(Method area) (0) | 2025.06.13 |
| JAVA 클래스 로더(Class loader) 및 로딩 과정 (1) | 2025.06.13 |