코딩항해기

[Error/Spring] UnsatisfiedDependencyException 본문

Error solution

[Error/Spring] UnsatisfiedDependencyException

miniBcake 2024. 10. 4. 11:52

 

 

 

@Autowired를 통해 의존성 주입 시 발생하는 모호성 문제로 인해 예외가 발생했다.

Autowired는 의존주입을 할 대상의 타입을 보고 자동으로 찾게 되는데 이 타입을 가진 객체가 여러 개 있어 어떤 의존주입을 해야할지 알 수 없어진 것이다. (주입대상 모호성)

 

이 때 해결하는 방법은 두 가지로,

 

1. 타입을 하나만 남기기

Component 어노테이션이나 xml에서 한 가지만 컨테이너에 등록을 해서 헷갈릴 여지 자체를 주지 않는 방법이다.

Component 어노테이션으로 온오프를 하게 되면 매번 패키지가 import됐다 제거됐다를 반복하게 되고 이는 컴파일이 다시 실행되므로 xml에 등록하고 사용하는 경우가 많다. (컴파일도 비용이기 때문이다)

 

2. @Qualifier 어노테이션으로 이름 지정하기

해당 타입의 어떤 객체를 할지 객체명을 지정해주어 헷갈리는 상황을 잡아주는 방식이다. 메모리에 여러 개를 두고 사용하겠다는 말과 같아서 성능이 좋지 않는 부분이 있다.

 

 

둘 중 한 가지의 방식을 적용하면 모호성을 해결할 수 있다.