728x90
DI (Dependency Injection)
- 의존성 주입
public class Main {
public void main(String[] args) {
Person jobth = new Person(“잡th”);
jobth.buy();
}
}
class Person {
…
void buy() {
SamsongPhone samsong = new SamsongPhone(“삼송”);
System.out.println(name + "님이 " + samsong.getName() + “폰을 샀습니다.”);
}
…
}
- Person 클래스는 내부적으로 SamsongPhone 클래스를 생성
- 매번 생성하는 것 보다, 생성 되어야 하는 SamsongPhone에 @Component를 생성 시키는 Person에 @Autowired를 통해
생성 가능
- 즉. SamsongPhone (Bean 객체)을 스프링 컨테이너에 등록하고 스프링 컨테이너가 이를 주입하는 것이다.
IoC (Inversion of Control)
- 제어의 역전
- 위 사례로 다시 설명할 수 있는데, 원래는 new 키워드로 생성하고 인스턴스 초기화하고 이런 로직을 개발자가 다 구현함
- 하지만 Spring에서는 어노테이션이나 설정 파일 (xml)로 Bean 객체 생성주기를 모두 컨트롤함
- 객체의 대한 제어권이 컨테이너에 역전되었다고 볼 수 있음
300x250