[Spring Boot] IoC/DI

이맑음·2021년 9월 16일
0

Spring Boot

목록 보기
7/21
post-thumbnail

Spring

  • 여러 가지 모듈 중 스프링 부트, 스프링 클라우드, 스프링 데이터, 스프링 배치, 스프링 시큐리티에 중점을 둔다.

POJO

  • IoC/DI 의존 관계 주입
  • AOP 관점 중심 프로그램
  • PSA 이식 가능한 추상화

IoC/DI

IoC(Inversion Of Control) 제어의 역전

  • 스프링에서 일반적인 자바 객체를 new로 생성하여 개발자가 관리하는 것이 아닌, Spring Container에 모두 맡긴다.
  • 생성하고자 하는 객체는 Spring Container에 이미 만들어져 싱글톤 형태로 관리 한다.
  • 개발자 -> 프레임워크로 제어의 객체 관리 권한이 넘어간 것 이다.

DI(Dependency Injection)

  • Spring Container(=외부)에서 만들어진 객체를 사용하기 위해 주입 받아야 하는데, 이것을 의존성을 주입한다 라고 표현한다.
  • DI의 장점
    - 의존성으로부터 격리시켜 코드 테스트에 용이하다.
    - Mock과 같은 기술을 통하여 안정적으로 테스트할 수 있다.
    - 코드를 확장하거나 변경 할 때 영향을 최소화 한다. = 추상화
    - 순환 참조를 막을 수 있다.
  • @Component : Spring이 실행될 때 이 어노테이션이 붙은 클래스를 찾아서 직접 객체를 싱글톤 형태로 만들어고 스프링 컨테이너에서 관리를 한다. springapplicationcontext를 통해 객체를 가져올 수 있다.
  • spring에서 bean을 주입받을 수 있는 곳은 변수, 생성자, set메서드 이다.
  • @Qualifier = 사용할 의존 객체를 선택할 수 있도록 해준다.
  • @Configuration = 한 개의 클래스에서 여러 개의 빈을 등록할 때 사용한다.
profile
하삐

0개의 댓글