IoC (Inversion of Control)
제어의 역전. 다른 객체를 직접 생성하거나 제어하지 않고 외부에서 관리하는 객체를 가져와 사용하는 것이다.
public class A {
b = new B(); // new 키워드로 클래스 A에서 클래스 B의 객체 생성
}
------------------------------------------------------------------------
public class A {
private B b; // 객체 생성X, 받아온 객체를 b에 할당
}
DI (Dependency Injection)
의존성 주입. IoC를 구현하기 위해 사용하는 방법이다.
@Autowired 애너테이션은 스프링 컨테이너에 있는 빈을 주입하는 역할을 한다. 빈은 스프링 컨테이너에서 관리하는 객체를 뜻한다.
public class A {
// A에서 B를 주입받음
@Autowired
B b;
}
위 코드가 잘 동작하는 이유는 스프링 컨테이너에서 객체를 주입했기 때문이다. 즉, 스프링 컨테이너가 객체 B를 만들어서 클래스 A에게 준 것이다.
기존의 자바는 클래스 A에서 B 객체를 사용하고 싶을때 직접 생성했지만, 스프링은 객체를 직접 생성하지 않고 스프링 컨테이너에서 객체를 주입받아 사용한다.
빈 (Bean)
스프링에서 제공해주고 관리해주는 객체
'Spring Boot' 카테고리의 다른 글
| private final vs autowired 차이점 (0) | 2025.02.14 |
|---|---|
| RequestParam vs PathValue 차이 (0) | 2025.02.13 |
| [Spring Boot] HTTP 상태 코드 (HTTP Status Code) (2) | 2024.12.19 |
| [Spring Boot] API, REST API, RESTful API (0) | 2024.12.11 |
| [Spring Boot] application.yml과 application.properties 차이점 (1) | 2024.12.08 |