a객체는 b/c객체에 의존한다:어떤 객체가 일을 해 나갈 때
다른 객체에게 일을 맡겨서 작업을 구동해 나간다.
방법1. a객체가 b/c객체를 직접 생성한다.
방법2. b/c객체 외부에서 생성하여 a객체에 넣어준다.
b,c 필드를 만들고 그 필드에 대해서 setter(), 생성자에다가
this.b해서 생성자로 매개변수를 받는다.(new B(), new C())

A객체, IOC컨테이너 전체를 스프링이라고 한다.

생성자 파라미터로 넣어주거나 setter로 b라는 메서드를 갖고 있다
.IOC컨테이너: 객체들을 부품화 시킴. 이 부품들을 갖고 있는 것
DI(Dependency Injection) 의존성 주입이라고 번역되며, 객체 간의 의존성을 관리하는 방법을 말합니다.
의존성이란 한 객체가 다른 객체를 사용하거나 의존하는 관계를 의미합니다. 예를 들어, 클래스 A가 클래스 B를 사용한다면 A는 B에 대한 의존성을 가지고 있습니다. 이러한 의존성은 클래스 사이의 결합도를 높이고 유연성과 재사용성을 저하시킬 수 있습니다.
DI는 이러한 의존성을 외부에서 객체에 주입하는 방식으로 관리합니다. 스프링에서는 주로 생성자 주입(Constructor Injection)이나 세터 주입(Setter Injection)을 사용하여 의존성을 주입합니다.
생성자 주입은 객체를 생성할 때 의존하는 객체를 생성자의 매개변수로 전달하는 방식입니다. 스프링은 의존성을 자동으로 해결하기 위해 생성자 주입을 제공합니다. 예를 들어, 클래스 A가 클래스 B를 의존한다면, A의 생성자에서 B를 매개변수로 받아와서 주입할 수 있습니다.
세터 주입은 의존성을 설정하는 메서드(세터 메서드)를 통해 의존하는 객체를 주입하는 방식입니다. 스프링은 빈으로 등록된 객체에 대해 자동으로 세터 주입을 수행합니다. 즉, 스프링 컨테이너가 객체를 생성하고 의존하는 객체를 찾아 해당 세터 메서드를 호출하여 의존성을 주입합니다.
DI의 핵심 아이디어는 의존성을 직접 관리하는 대신, 외부에서 주입받는 것입니다. 이를 통해 코드의 결합도를 낮추고 유연하고 재사용 가능한 애플리케이션을 만들 수 있습니다. 스프링의 DI 기능을 통해 객체 간의 관계를 설정하고 의존성을 주입함으로써, 애플리케이션의 구성 요소들을 느슨하게 결합시킬 수 있습니다.
'Spring > 신입SW인력을 위한 실전 자바Java 스프링Spring' 카테고리의 다른 글
스프링Spring 동영상과정 제 06강 (0) | 2023.06.11 |
---|---|
스프링Spring 동영상과정 제 05강 (0) | 2023.06.10 |
스프링Spring 동영상과정 제 04강 (0) | 2023.06.10 |
스프링Spring 동영상과정 제 03강 (0) | 2023.06.10 |
스프링Spring 동영상과정 제 01강 (1) | 2023.06.10 |