본문 바로가기

JAVA/JAVA

[JAVA] Spring 에러 Error creating bean with name : Unsatisfied dependency expressed through field ~

 

Error creating bean with name '...Service': Unsatisfied dependency expressed through field '...Service''; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type '...Service'' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=...Service)}

해당 에러는 결론 먼저 이야기하자면, '빈 생성시에 필요한 것이 빠졌거나, 잘못되었으니 고쳐보아라' 라는 에러를 뱉어내고 있는 것이다.

~Serivce 클래스일수있고, Repository, Controller , Impl 등 다양한 클래스에서 해당에러를 뱉어낼수있다.

로그가 알려준 클래스에서 어노테이션을 확인해보자.

 

Serivce.java : @Service

Contorer.java : @RestController

Repository.java : @Repository

 

등의 어노테이션이 있을테고, 위와 같은 관점으로 에러를 해결해나가면 된다.

 

이외에 모든 어노테이션이 맞게 써져있는데, 왜? 안되지 ?

하는경우도 있는데, 아래의 경우는 아닌지 확인해보자 

@Service
@Transactional
@Slf4j
public class classsss {...

// ................ 순서

@Slf4j
@Service
@Transactional
public class classsss {...

어노테이션의 순서, 존재유무를 확인해보자. 

 

* 추가적으로 수정된 것도 없는데, 뜬금없이 빈생성, 참조실패등의 에러가 이클립스의 종특으로 발생하는 경우가 있는데, 아무리 찾아도 소스상에 문제가 없다면,

> Project Clean > Maven Build > Tomcat Clean > 서버실행

과 같은 일련의 Clean , build 작업을 수행하여 문제를 해결할 수 도있겟다.