✨ Programming/Spring

[Spring] DI와 IoC

엉ㅇㅏ 2023. 8. 1. 23:46

DI란?

  • 의존성 주입(Dependency Injection, DI)
  • 스프링 컨테이너가 필요한 객체를 제공(주입)해준다.
  • 의존성 주입 방법
    • 생성자 주입
    • 수정자 주입(setter 주입)
    • 필드 주입
    • 일반 메서드 주입
  • 어노테이션
    • @Autowired
    • @Resource
    • @Inject

IoC란?

  • 제어의 역전(Inversion of Control, IoC)

  • 개발자가 객체를 직접 생성하거나 제어하는 것이 아닌 스프링 컨테이너에서 관리하고 제공하는 객체를 가져와 사용하는 것을 말한다.

    // 개발자가 직접 Dog 객체 생성
    public class Animal {
      Dog dog = new Dog();
    }
    // 개발자가 직접 Dog 객체를 생성하는 게 아닌 그냥 객체를 선언하기만 함
    public class Animal {
      private Dog dog;
    }