728x90
반응형
[Spring] IoC (Inversion of Control) - 제어권의 역전
의존성에 대한 일반적인 제어권: "내가 사용할 의존성은 내가 만든다."
class OwnerController {
private OwnerRepository repository = new OwnerRepository();
}
IoC 컨테이너 사용: "내가 사용할 의존성을 누군가 알아서 주겠지"
-> 제어권이 IoC 컨테이너로 넘어가 프로그램의 흐름을 프레임워크가 주도하게 된다.
-> DI(Dependency Injection)도 IoC의 일종
class OwnerController(OwnerRespository repo){
private OwnerRepository repo;
public OwnerController(OwnerRepository repo) {
this.repo = repo;
}
}
// Test
class OwnerControllerTest{
@Test
public void create(){
OwnerRepository repo = new OwnerRepository();
OwnerController controller = new OwnerController();
}
}
IoC 컨테이너 ( ApplicationContext, BeanFactory )
- Bean을 만들고 엮어주며 제공해준다.
- 빈 설정: 이름 or Id, Type, Scope
728x90
반응형
'Programing > Spring FrameWork' 카테고리의 다른 글
[Spring] 해당 타입의 빈이 여러개인 경우 (0) | 2021.07.20 |
---|---|
[Spring] Bean 주입방법 비교(xml vs Java) (0) | 2021.07.13 |
[Spring] PSA ( Portable Service Abstraction ) (0) | 2021.01.18 |
[Spring] AOP ( Aspect Oriented Programming ) (0) | 2021.01.18 |
[Spring] 빈 ( Bean ) (0) | 2021.01.17 |