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;
        }

스프링 레퍼선스에서는 생성자를 통해 주입하는 것을 권장하고 있다.
그 이유는 필수적으로 사용해야 하는 레퍼런스 없이는 인스턴스를 만들지 못하도록 강제하는 역할을 할 수 있기 떄문이다.