충분히 쌓여가는
IoC와 DI 본문
제어의 역전 IoC
Inversion of Control
다른 객체를 직접 생성하거나 제어하는 것이 아니라 외부에서 관리하는 객체를 가져와 사용하는 것
객체를 관리하기 위해 IoC 사용
기존의 코드는 객체가 필요한 곳에서 직접 생성하였다
B 객체를 사용하기 위해 클래스 A에서 객체를 직접 생성
public class A {
b = new B();
}
IoC 적용
B 객체를 직접 생성하는 것이 아니라, 어딘가에서 받아와 사용
public class A {
private B b;
}
DI
Dependency Injection
IoC를 구현하기 위해 사용하는 방법이 DI
어떤 클래스가 다른 클래스에 의존한다는 뜻
@Autowired라는 애너테이션은 스프링 컨테이너에 있는 빈이라는 것을 주입하는 역할
빈은 스프링 컨테이너에서 관리하는 객체
어딘가에서 B b;라고 선언했을 뿐 직접 객체를 생성하지는 않고 있다, 즉 객체를 주입받고 있다
public class A {
@Autowired
B b;
}
잘동작하는 이유는 스프링 컨테이너라는 곳에서 객체를 주입했기 때문
스프링 컨테이너가 B 객체를 만들어 클래스 A에 준 것
'Spring > Spring Boot' 카테고리의 다른 글
자동 구성, 스프링 부트 3와 자바 버전 (0) | 2023.12.19 |
---|---|
스프링 부트 스타터 (0) | 2023.12.19 |
AOP와 PSA (0) | 2023.12.19 |
스프링 컨테이너와 빈 (0) | 2023.12.19 |
자바 백엔드 개발자가 알아두면 좋은 지식 (0) | 2023.12.19 |