@Controller
public class MemberController{
@Autowired
public MemberController(MemberService memberService) {
this.memberService = memberService;
}
}
@Controller
public class MemberController{
@Autowired privateMemberService memberService;
}
@Controller
public class MemberController{
private MemberService memberService;
@Autowired
public void setMemberService(MemberService memberService) {
this.memberService = memberService;
}
}
DI에는 필드주입, setter주입, 생성자 주입 이렇게 3가지 방법이 있다.
의존관계가 실행중에 동적으로 변하는 경우는 거의 없으므로 생성자 주입을 권장한다.
주의 : @Autowired를 통한 DI는 helloController, MemberService등과 같이 스프링이 관리하는 객체에서만 동작한다.
스프링 빈으로 등록하지 않고 내가 직접 생성한 객체에서는 동작하지 않는다.