[Spring] org.springframework.beans.factory.UnsatisfiedDependencyException 에러

2024. 10. 4. 14:15·에러일기
목차
  1. org.springframework.beans.factory.UnsatisfiedDependencyException  에러
  2. 주요 원인
  3. 해결 방안

 

org.springframework.beans.factory.UnsatisfiedDependencyException  에러

의존성 주입(Dependency Injection) 과정에서 발생한다.

이 오류는 특정 빈(Bean)을 생성하기 위해 필요한 의존성을 찾을 수 없을 때 발생한다.

 

주요 원인

 

  • 의존성 부족: 의존성을 주입하려는 빈이 해당 의존성을 제공하는 빈을 찾지 못할 때 발생한다. 예를 들어, 클래스의 생성자나 메서드에서 요구하는 빈이 없거나 올바르게 설정되지 않은 경우다.
  • 이름 불일치: @Autowired 어노테이션을 사용할 때, 빈의 이름이 잘못되었거나 해당 이름의 빈이 존재하지 않는 경우에도 이 오류가 발생할 수 있다.
  • 어노테이션 누락: @Component, @Service, @Repository 등의 어노테이션이 클래스에 누락되어 Spring 컨테이너가 해당 클래스를 빈으로 등록하지 못하는 경우다.
  • 순환 의존성: 두 개 이상의 빈이 서로를 참조할 때 발생할 수 있으며, Spring이 빈을 생성할 수 없는 상황이 발생한다.
  • XML 설정 오류: XML 설정 파일에서 빈 정의가 올바르지 않거나 누락된 경우에도 이 예외가 발생할 수 있다.

나같은 경우는 어노테이션 누락으로 인해 발생했다.

package test;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;

@Component("samsung")
public class GalaxyPhone implements Phone {
	@Autowired // DI == 의존주입
	@Qualifier("gw")
	private Watch watch;
	
	public GalaxyPhone() {
		System.out.println("갤럭시 객체 생성 01");
	}
	public GalaxyPhone(Watch watch) {
		this.watch=watch;
		System.out.println("갤럭시 객체 생성 02");
	}

	@Override
	public void powerOn() {
		this.watch.powerOn();
	}
	@Override
	public void powerOff() {
		this.watch.powerOff();
	}	
}

해결 방안

@Autowired는 타입을 기준으로 의존성을 주입하는데, 만약 여러 개의 동일한 타입이 존재하면 모호성 에러가 발생할 수 있다.

위 코드 외에도 여러개의 동일한 타입이 존재했기 때문에, 모호성으로 인해 에러가 발생한 것이다.

@Qualifier 삽입을 하면, 객체명도 참고를 해서 의존성을 주입하기 때문에, 

@Qualifier 삽입으로 객체명도 참고해서 에러를 해결했다.

 

 

'에러일기' 카테고리의 다른 글

[Spring] org.springframework.beans.factory.BeanDefinitionStoreException 에러  (0) 2024.10.08
[Oracle 연동 오류] ORA-12541 데이터베이스에 접속할 수 없습니다. %s에 리스너가 없습니다.  (0) 2024.10.04
[Spring] org.springframework.beans.factory.NoSuchBeanDefinitionException 에러  (0) 2024.10.01
[MySQL] Initializing database 설치 오류  (0) 2024.10.01
[JSP] jakarta.el.PropertyNotFoundException 에러  (0) 2024.09.12
  1. org.springframework.beans.factory.UnsatisfiedDependencyException  에러
  2. 주요 원인
  3. 해결 방안
'에러일기' 카테고리의 다른 글
  • [Spring] org.springframework.beans.factory.BeanDefinitionStoreException 에러
  • [Oracle 연동 오류] ORA-12541 데이터베이스에 접속할 수 없습니다. %s에 리스너가 없습니다.
  • [Spring] org.springframework.beans.factory.NoSuchBeanDefinitionException 에러
  • [MySQL] Initializing database 설치 오류
yn98
yn98
좌우명 : 여전할 것 인가, 역전할 것 인가? 백엔드 개발자가 되고싶은 역전하고 있는 개발자 꿈나무의 블로그입니다. 개발을 하면서 공부한 것들을 기록합니다. 24.06 ~
  • yn98
    개발 꿈나무
    yn98
  • 전체
    오늘
    어제
    • 분류 전체보기 (131)
      • Python (3)
      • 공부 (7)
      • DB (7)
      • JAVA (24)
      • JSP (9)
      • jQuery (2)
      • HTML (3)
      • Spring (20)
      • 웹 (4)
      • C (1)
      • Git (2)
      • 에러일기 (19)
      • 프로젝트 (6)
      • 책 (21)
        • 멘토씨리즈 자바 (14)
        • 2024 수제비 정보처리기사 (7)
      • 기타 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
    • Notion
  • 공지사항

  • 인기 글

  • 태그

    정보처리기사
    어노테이션
    정보처리기사 실기
    aop
    jsp
    오블완
    @service
    Di
    @repository
    java
    DispatcherServlet
    정처기 실기
    스프링 프레임워크
    이벤트 스케줄러
    생성자
    ViewResolver
    오버로딩
    수제비
    티스토리챌린지
    recoverabledataaccessexception
    Spring
    2-layered 아키텍처
    객체지향
    상속
    html
    @Component
    codeup 4891 : 행복
    멘토씨리즈 자바
    MVC
    정처기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
yn98
[Spring] org.springframework.beans.factory.UnsatisfiedDependencyException 에러

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.