@Autowired

도윤·2024년 4월 13일
post-thumbnail

Autowired

@Autowired 란 스프링 컨테이너에 등록한 빈에게 의존관계주입이 필요할 때, DI(의존성 주입) 을 도와주는 어노테이션이다.

스프링 컨테이너에 빈들을 모두 등록한 후에, 의존성 주입 단계가 이루어진다.
이 때 @Autowired 어노테이션이 부여된 메서드가 실행되며 필요한 인스턴스를 주입해준다.

@Autowired는 총 3가지 방법으로 실현이 가능한데, 생성자, 수정자(setter), 필드를 사용할 수 있다.

생성자 주입

방법 : Constructor 생성자를 통해 의존 관계를 주입하는 방법이다.

  • 객체가 생성될 때 딱 한번 호출되는 것이 보장된다. -> 의존관계가 변하지 않는 경우, 필수 의존관계에 사용
  • 의존 관계에 있는 객체들을 final 선언할 수 있다는 장점 -> 생성자에서 무조건 설정해주어야 함 -> 누락 발생x
  • 생성자가 하나일 경우 @Autowired


  • 의존해야 하는 객체를 우선 private final 로 선언한다.
    그리고 생성자를 통해 해당 객체들을 주입 받도록 하고, 생성자의 위에 @Autowired 어노테이션을 추가한다.
profile
기록은 기억을 이긴다⭐

0개의 댓글