Java 에러 - NoSuchBeanDefinitionException

Smite·2023년 2월 26일

모음집

목록 보기
3/6

에러 내용

NoSuchBeanDefinitionException

Bean을 찾지 못하는 경우 나타나는 에러이다.
간단하지만 자주 실수하는 case를 알아보도록 하자.


해결하기

📖Case 1. 오타

등록된 Bean과 사용하려는 Bean 이름이 다르다.

[Bean 지정 코드 중 일부]
@Bean("asycn-thread")
    public Executor asyncThread(){
    ...
	}
    
    
[등록된 Bean을 Async에서 사용하는 코드 중 일부]
    @Async("async-thread")
    public CompletableFuture run(){
    ...
    }

Solution : Bean name이 틀리지 않도록 오타에 주의하도록 하자!


📖Case 2. 패키지 경로 문제

Bean을 등록한 패키지와 Bean을 사용하려는 패키지 위치가 달라 Bean을 찾지 못한다.

AppConfig [Bean 지정 코드 중 일부]
@Bean("asycn-thread")
    public Executor asyncThread(){
    ...
	}
    
    
[등록된 Bean을 Async에서 사용하는 코드 중 일부]
    @Async("async-thread")
    public CompletableFuture run(){
    ...
    }

[잘못된 패키지 구조]

Solution : Bean을 찾을 수 있도록 패키지 위치를 수정해주자!

[수정된 패키지 구조]

간단한 실수로 NoSuchBeanDefinitionException이 발생할 수 있는 Case이다.

0개의 댓글