-
카테고리
-
세부 분야
백엔드
-
해결 여부
해결됨
강의영상 11분쯤 나오는 내용에 대한 질문입니다.
19.01.30 08:34 작성 조회수 102
1
이전 "의존객체 자동 주입" 강의에서
@Autowired와 @Resource는
객체의 타입으로 접근하느냐, 객체의 이름으로 접근하느냐에 따라 차이가 있었는데요,
위 강의 11분 쯤 나오는 내용에서 @Qualifier를 사용하지 않는 수법으로
"@Autowired만 명시하되 이때 객체의 이름이 동일하면된다."라는 말씀을 하셨는데요.
이렇게되면 @Autowired도 객체의 이름으로 접근하는것과 동일한건가요~?
답변을 작성해보세요.
2
Henu
질문자2020.01.07
예를들어 BookRepository Interface를 구현한
MyBookRepository, YouBookRepository 클래스가 두 개가 존재하고
모두 Bean으로 등록이 되어 있다고 가정한다면
특정 Service에서
@Autowired
BookRepository bookRepository; // Error
와
@Autowired
BookRepository myBookRepository; // No Error
의 차이는 '전자'는 동일한 타입의 Bean이 여러 개 등록되어 있기때문에 에러가 발생하는 것이고,
'후자'는 동일한 타입의 Bean이 여러 개 등록되어 있다고 한들 특정 객체를 지시하고 있기에 에러가 발생하지 않는 이유겠군요.
이 또한 스프링 프레임워크에서 제공하는 기능이구요.
2
arsu1992
2019.12.31
객체의 타입은 같고 객체의 이름은 다르다 => 정상
객체의 타입은 다르고 객체의 이름은 같다 => 에러
인것 같은데요..
객체의 이름으로 주입이 된 이유는 동일한 타입의 bean이 여러개 있기 때문에 객체의 이름으로 판단한것 같네요
답변 2