본문 바로가기

Spring

Spring bean 조회 시 같은 타입이 두 개 이상인 경우는 어떻게 해요~?

https://jootang2.tistory.com/145

 

Spring에 등록된 Bean들을 조회해보자~

https://jootang2.tistory.com/144 Spring을 통해 의존관계 주입해보기! https://jootang2.tistory.com/127 Spring에서 순수 Java코드로 의존관계 주입해보기 (OCP,DIP 문제를 어떻게 해결하지?) 원리를 모르고 기능만 사용

jootang2.tistory.com

이전 포스팅에서 bean을 타입으로 조회하는 방법을 알아봤다.

 

동일한 타입이 두 개 이상인 경우는 어떻게 해야하지!?

 

먼저 오류가 나는 경우를 보자

@Test
 @DisplayName("타입으로 조회시 같은 타입이 둘 이상 있으면, 중복 오류가 발생")
 void findBeanByTypeDuplicate() {
 assertThatThrownBy(() ->ac.getBean(beanTest.class))
 			.isInstanceOf(NoUniqueBeanDefinitionException.class);
 }

 

beanTest.class 타입인 bean이 2개가 있으면 NoUniqueBeanDefinitionException이 발생한다.

 

bean 이름을 지정해주면 이런 exception을 해결할 수 있다.

@Test
 @DisplayName("같은 타입이 둘 이상 시, 빈 이름을 지정")
 void findBeanByName() {
     BeanTest beanTest = ac.getBean("beanTest1", beanTest.class);
     assertThat(beanTest).isInstanceOf(BeanTest.class);
 }

 

이렇게 Bean들을 조회하고, 동일한 타입이 여러개인 경우에 어떻게 해결하는 지 알아봤다.

 

다음 포스팅부터는 의존관계 자동 주입에 대해서 알아보자!

 

 

스프링 핵심 원리 - 기본편 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런

www.inflearn.com

곧 벚꽃이 핀다. 올 해 벚꽃놀이는 아주 이쁜 곳으로 사람없는 곳으로 밍지박사랑 갈 계획이다(제주도...?)!!