[Spring] 제어의 역전과 의존성 주입
IoC와 DI란?
IoC
IoC란? Inversion of Control : 제어의 역전
- 클래스 B 객체를 사용하기 위해 클래스 A에서 객체를 직접 생성
public class A { b = new B(); }
- 제어의 역전을 사용한 경우 : 클래스 B 객체를 직접 생성하는 것이 아님
public class A { private B b; }
DI
DI란? Dependency Injection : 의존성 주입
- 어떤 클래스가 다른 클래스에 의존한다는 의미
IoC/DI를 기초로
- @Autowired : 스프링 컨테이너에 있는 빈을 주입하는 역할
bean
: 스프링 컨테이너에서 관리하는 객체
public class A {
// A에서 B를 주입받음
@Autowired
B b;
}
- 스프링 컨테이너가 B 객체를 만들어서 클래스 A에 준 것
빈과 스프링 컨테이너
스프링 컨테이너
- 빈을 생성하고 관리함
- 빈이 생성되고 소멸되기까지의 생명주기를 스프링 컨테이너가 관리
- 개발자가
@Autowired
같은 애너테이션을 사용해 빈을 주입받을 수 있게 DI를 지원
빈
- 스프링 컨테이너가 생성하고 관리하는 객체
- 앞 코드에서의 B
빈을 등록하는 방법
@Component
애너테이션 추가- XML 파일 설정
Leave a comment