Spring 02. DI, IOC
IOC
일반적인 의존성에 대한 제어권은 개발자가 직접 의존성을 만들지만 Spring은 외부에서 의존성을 가져온다.
즉 밖에서 나에게 의존성을 주입해주는 것을 DI라고 하는데 이것은 IOC의 일종이다.
public OwnerController(OwnerRepository clinicService, VisitRepository visits) { this.owners = clinicService; this.visits = visits; }
스프링에서 의존성을 주입하는 방법
스프링에서 의존성을 주입하는 방법은 세가지이다.
@Autowired 어노테이션은 field, 생성자, setter메소드 등에 붙여서 사용할 수 있다.
public OwnerController(OwnerRepository clinicService, VisitRepository visits) {
this.owners = clinicService;
this.visits = visits;
}
스프링 레퍼선스에서는 생성자를 통해 주입하는 것을 권장하고 있다.
그 이유는 필수적으로 사용해야 하는 레퍼런스 없이는 인스턴스를 만들지 못하도록 강제하는 역할을 할 수 있기 떄문이다.