의존성 주입 3가지

정하윤·2023년 8월 8일
0

의존성 주입 3가지

1. 생성자 주입


@Controller
public class MemberController{
    @Autowired 
    public MemberController(MemberService memberService) {
        this.memberService = memberService;
    }
}

2. 필드 주입


@Controller
public class MemberController{
 @Autowired privateMemberService memberService; 
}

3. 수정자 주입(Setter Injection)


@Controller
public class MemberController{

 private MemberService memberService;
  
      @Autowired
      public void setMemberService(MemberService memberService) {
       this.memberService = memberService;
   }  
}

DI에는 필드주입, setter주입, 생성자 주입 이렇게 3가지 방법이 있다.
의존관계가 실행중에 동적으로 변하는 경우는 거의 없으므로 생성자 주입을 권장한다.

주의 : @Autowired를 통한 DI는 helloController, MemberService등과 같이 스프링이 관리하는 객체에서만 동작한다.
스프링 빈으로 등록하지 않고 내가 직접 생성한 객체에서는 동작하지 않는다.

0개의 댓글