Component Scan

Ahn yi·2022년 10월 6일
0

spring

목록 보기
7/11

컴포넌트 스캔 (@Component)

  • 설정 정보가 없어도 자동으로 @Component 어노테이션이 붙은 클래스를 스프링 빈으로 등록하는 기능이다.
  • 스프링 빈의 기본 이름은 클래스명의 맨 앞글자만 소문자로 바꾼 후, 사용한다.
  • 위치를 지정하여 하위에 있는 것을 모두 조회한다.
  • 관례상 프로젝트 최상단에 둔다.
  • 스프링부트는 @SpringBootApplication에 @ComponentScan이 존재한다.

의존관계 자동 주입@Autowired

  • 생성자에 @Autowired를 지정하면, 스프링 컨테이너가 자동으로 해당 스프링 빈을 찾아 주입한다.
    • 생성자 주입 ( 주로 사용된다 )

      • 생성자를 통해 의존 관계를 주입 받는다.
      • 생성자 호출시점에 1번만 호출된다.
      • 불변, 필수 // 의존관계에 사용한다.
      • 생성자 1개일시, 생략 가능하다.
    • 수정자 주입(setter 주입)

      • setter라 불리는 값 변경 메서드에서 의존관계를 주입한다.
      • 선택, 변경 가능성이 있는 의존관계에 사용한다.
    • 필드 주입

      • 필드에 주입하는 방법이다.
      • 코드가 간결하지만 외부에서 변경하기 힘들어 테스트가 힘들다.
      • DI 프레임워크가 없으면 쓸모가 없다.
      • 스프링 설정을 목적으로 하는 곳에서 특별한 용도로 사용된다.
    • 일반 메서드 주입

      • 일반 메서드에서 주입된다.

생성자 주입

  • 대부분의 의존관계는 애플리케이션 종료 전까지 변하면 안된다. (불변)
  • final키워드를 사용하므로 주입 데이터 누락 시에 컴파일 오류가 발생한다.
  • 프레임워크에 의존하지 않는다.
profile
소통을 잘하고싶은 백엔드 개발자

0개의 댓글