Closed a-young-kim closed 4 months ago
Autowired 가 빈을 찾는 방법으로 타입으로 찾는 방법과 필드 혹은 파라미터 명으로 찾을 수 있으며 타입으로 찾을때 해당 타입으로 빈이 여러개 등록되어 있을경우 예외가 터집니다.
타입으로 빈을 찾을시
한 타입에 2개 빈 등록하며 타입으로 찾을시
필드 명으로 찾을시
한 개의 타입만 빈으로 존재할 경우 필드명과 관계없이 DI가 이루어지지만 여러개의 빈이 존재할 경우 DI될 필드의 이름이 빈의 이름과 동일해야합니다.
p412에서 @Autowired는 기본적으로 타입을 이용해 빈을 찾지만 타입을 이용해 빈을 찾지만 만약 타입으로 하나의 빈을 결정할 수 없는 경우에는 필드 이름을 이용해 빈을 찾는다고 합니다. 그렇다면 Test에서 UserService을 implements 받은 UserServiceImpl 이라는 클래스(?)를 주입하고 싶은 경우 @Autowired UserService userServiceImpl 이라고 작성하면 첫번쨰로 UserService를 타입으로 가진 빈들을 확인하고 여러개가 존재한다면 UserServiceImpl이라는 이름(클래스명)을 가진 빈을 찾아 주입한다고 이해하면 될까요?? 이 부분에서 계속 의문이 생겨서 질문 드립니다.