Inversion of Control(제어권의 역전)
일반적인 의존성에 대한 제어권을 자기 자신이 가지고 있었다.
class OwnerController{
private OwnerRepository repository = new OwnerRepository();
}
그런데 instance를 여러군데서 사용 한다거나 일일히 생성해서 사용하는데 불편함을 느껴
서 instance의 생성을 컨테이너에 맡겨서 일관적으로 진행한 후에
필요할 때만 @autowired, @inject 등으로 instance를 컨테이너로 부터 주입받아서 사용
instance의 생성 및 관리 주체자가
'사용자-나' -> 컨테이너 로 변했기 때문에
Inversion of Control, 제어의 역전이 되는 것이고 그 방법론으로
Dependency of Injection 의존성 주입이 일어나는 것 입니다.
DI에는 Setter Inj, Constructor Inj, Method Inj로 나누어짐
내가 사용할 의존성을 누군가 타입을 맞게 주는 것
class OwnerController{
private OwnerRepository repo;
public OwnerController(OwnerRepository repo){
this.repo = repo;
}
}
class OwnerController Test{
@Test
public void create(){
OwnerRepository repo = new OwnerRepository();
OwnerController controller = new OwnerController(repo);
}
}
반응형
'웹프로그래밍 > spring~~' 카테고리의 다른 글
Maven 이란~ (0) | 2019.06.05 |
---|---|
Spring PSA (0) | 2019.05.30 |
SPRING AOP (0) | 2019.05.30 |
의존성 주입 (0) | 2019.05.30 |
Spring bean이란 ? (0) | 2019.05.29 |
Thymeleaf란? (0) | 2019.05.28 |
Spring MVC구조 (0) | 2019.05.20 |
세션, 쿠키 (0) | 2019.04.27 |