Spring 핵심 원리 - 다양한 의존 관계 주입

박양원·2024년 2월 20일
0

Spring Basic

목록 보기
4/4
post-thumbnail
post-custom-banner

다양한 의존 관계 주입

수정자 주입 (Setter)

  • 자바빈 프로터티 규약의 setter 메소드에 @Autowired를 사용
  • 테스트 코드에서 의존 관계를 한 눈에 파악하기 힘듬
  • 옵션이 필요한 경우에만 특별히 사용
  • 옵션 (Spring Bean과 관계없이 동작해야 하는 경우에 사용)
    • @Autowired(required = false) : 호출 자체가 일어나지 않음
    • 파라미터에 @Nullable : 호출은 일어나나, null로 나옴
    • Optional 파라미터 : 호출은 일어나나, Optional.empty로 옴

필드 주입

  • 필드에 바로 @Autowired 사용
  • 간결하다는 큰 장점이 있으나, 변경이 불가능한 단점이 있어 사용하지 않음
  • DI 프레임 워크가 없으면 할 수 있는게 없음

일반 메소드 주입

  • 메소드를 하나 만들고, 그 안에서 주입을 받음
  • 사용 X

생성자 주입

  • Best Practice (얘를 사용하자)
  • 생성자에 @Autowired를 붙여 의존 관계를 주입
  • 오류가 컴파일 시점에 찾을 수 있음
    • 필드에 final 키워드를 사용할 수 있음 => 필드의 값을 누락하지 않음
    • 객체를 생성할 때, 데이터 누락을 방지할 수 있음
  • 대부분의 의존 관계는 불변해야 하는데, 이를 유지할 수 있음
  • 프레임워크에 의존하지 않고, 순수한 자바 언어의 특징을 잘 살릴 수 있음


인프런 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 정리한 내용입니다.
김영한님 인프런 강의

post-custom-banner

0개의 댓글