초웹개_스프링5_DI(3)

네코·2022년 5월 3일
0

초웹개

목록 보기
3/10
post-thumbnail

의존 자동 주입

@Autowired를 통한 자동 주입

  • 의존을 주입할 대상에 @Autowired 붙이면 됨

  • 메서드에도 붙일 수 있다.

    @Qualifier

    자동 주입 가능한 빈이 2개 이상일 경우, 한정할 수 있음.

  • 먼저 빈 설정 메서드에서 한정값을 부여함.

  • 해당 빈을 주입하는 메서드 or 필드에서 해당 한정값을 설정

  • 기본 한정자는 해당 필드 혹은 빈의 이름으로 설정되어 있음.

상속관계와 자동 주입

MemberPrinter를 상속하는 MemberSummaryPrinter() 구현되어 있다.
이 때 빈 설정 파일에서 MemberSummaryPrinter 타입의 빈 객체를 설정하고 프로그램 실행하면
두개의 빈 객체가 존재한다는 익셉션이 발생한다.

왜냐하면 MemberSummaryPrinter는 MemberPrinter타입에도 할당할 수 있기 떄문
따라서 한정자 필요하다.

  • @Qualifier을 설정해서 해결
  • 하위의 하나의 클래스로 한정될 수 있게 수정해 해결

@Autowired의 필수 여부 (?)

  • requred = false 를 통해 매칭되는 빈이 없어도 익셉션 발생안하고 주입하지 않음
  • Optional<주입객체>
  • @Nullable

0개의 댓글