DI 우선 순위
(@Autowired 기준)
-
(보통) : 타입 → 이름
-
(다수의 동일한 타입의 빈) : @Qualifier
→ @Primary
-
(혼용해서 사용하는 경우) : 타입 → @Qualifier
→ @Primary
→ 이름
-
@Qualifier
여러 빈을 찾았을 때, 그 빈들 중 어떤 빈을 선택할지 기준을 부여
-
@Primary
기본 빈 설정
DI 우선순위 관련1
DI 우선순위 관련2
DI 우선순위 관련3
패키지가 다른데 같은 이름의 빈들은 DI할 때 우선순위
- 같은 이름의 Bean
- Bean 등록시 클래스 또는 메서드 이름이 Bean의 ID가 되기 때문에 같은 이름의 Bean을 등록하면 오류를 뿜어낸다.
- Bean 이름을 설정하여 해당 문제를 해결할 수 있다.
@Component(“~~~”)
, @Service(“~~~”)
, @Bean(“~~~”)
같은 이름의 Bean 관련1
같은 이름의 Bean 관련2
(참고) @Resource
@Autowired
- 타입으로 Bean을 지정
- 생성자, 필드, 메서드에 모두 적용 가능
@Resource
- Name으로 Bean을 지정
- 필드, 메서드에 적용
@Resource(name = “~~~”)
- 해당 이름을 가진 Bean을 찾아 주입한다.
- name 속성이 없으면 타입으로 찾는다.
- 같은 이름을 가진 Bean을 찾는다.
- @Qualifier 이용