[강의] 예제로 배우는 스프링 입문(IoC, DI)
IoC (제어의 역전)
IoC (Inversion of Control) 컨테이너
ApplicationContext (BeanFactory)
빈(bean)을 만들고 엮어주며 제공해준다.
빈(Bean)
스프링 IoC 컨테이너가 관리하는 객체
어떻게 등록하지?
1.Component Scanning
@Component
@Repository
@Service
@Controller
@Configuration
2.직접 일일히 XML이나 자바 설정 파일에 등록
어떻게 꺼내쓰지?
@Autowired 또는 @Inject
또는 ApplicationContext에서 getBean()으로 직접 꺼낸다.
정리
내가 이해한것을 정리해보자면,
일반적으로는 new연산자로 내가 사용할 의존성은 내가 만든다.
=> new OwnerRepository(); 생성.
하지만 스프링에서는
스프링 IoC 컨테이너에서 객체를 생성(new) 하고
의존성 주입해서 사용한다.
(DI - 의존성 주입 중 생성자 주입을 스프링에서 선호함.)
객체를 직접 생성 하는 것이 아니라 외부(IOC컨테이너)에서 생성된 객체를
주입시켜 setter,필드, 생성자를 통해 사용하는 방식이다.
IoC는 프로그램 제어권을 역전시키는 개념이고
DI는 해당 개념을 구현하기 위해 사용하는 디자인 패턴 중 하나로
이름 그대로 객체의 의존관계를 외부에서 주입시키는 패턴을 말한다.