Spring[Info] - Spring Triangle_IoC
2021. 7. 2. 14:19ㆍSpring/Spring[Info]
반응형
🤔 Inversion of Control? (제어의 역전)
- 사용은 하지만 만들진 않음
- 누군가 밖에서 만들어서 줄 수 있도록 생성자를 통해 받아옴
💻 IoC Template
// Controller의 생성자는 repo를 주입해줘야 한다.
// 생성자로 강제하기 때문에 repo 객체는 무조건 사용할 수 있다.
class OwnerController {
private OwnerRepository repo;
public OwnerController(OwnerRepository repo) {
this.repo = repo;
}
}
class OwnerControllerTest {
@Test
public void create() {
OwnerRepository repo = new OwnerRepository();
// 외부에서 repo 주입
OwnerController controller = new OwnerController(repo);
}
}
🤔 Spring IoC Container
- 빈(Bean)을 만들고, 의존성을 엮어주며, 제공해주는 역할을 수행
- ApplicationContext 또는 beanFactory 중 하나를 사용
- BeanFactory가 실질적인 IoC 컨테이너
- ApplicationContext는 BeanFactory를 상속받아 더 다양한 일 수행
- 의존성 주입은 Bean끼리만 가능하다.
반응형