2014-11-04 4 views
3

패키지 이름은 com.example.service이고 Spring Configuration 클래스에는 @ComponentScan({"com.example.service"},{"com.example.controller"})이라는 주석이 있습니다.@Service 용 Spring @ComponentScan

@Autowire 서비스를 시도하면 코드 컴파일이 NoSuchBeanDefinitionException과 함께 실패합니다. MyService 인터페이스는 @Service으로 주석 처리됩니다.

은 현재 내가 일반적으로 @ComponentScan 내가 컨트롤러 패키지를 제거하면, 작동하는 것 같다 아주 추악한 해결 방법을 사용하고

@Bean 
public MyService myService() { 
    return new MyServiceImpl(); 
} 

처럼 내 ExampleConfig.java에있는 모든 단일 서비스 빈을 선언 컨트롤러를 찾을 수 없습니다. 나는 무엇을 잘못 이해 했는가? 관련 정보를 놓친 경우 나에게 알려주십시오.

+1

예외는 컴파일시 발생하지 않습니다. 오류 유형을 별도로 유지하십시오. 그렇지 않으면 잘못된 장소에서 솔루션을 찾을 수 있습니다. – chrylis

+0

당신은 이것으로 절대적으로 맞습니다. 이 시점에서 나는 내 묘사에 부정확했다. – dexBerlin

답변

3

이면 MyService 인터페이스는 당신이 당신의 인터페이스의 구현에 주석을해야한다 @Service

주석된다. 인터페이스 자체가 아닙니다. 여러 패키지를 스캔 할 ComponentScan 주석에 대한 코드 아래 사용

0

봅니다 :

@ComponentScan({"com.example.service","com.example.controller"}) 

대신

@ComponentScan({"com.example.service"},{"com.example.controller"}) 

@ComponentScan 여러 기본 패키지를 스캔에 대한 문자열 배열을 사용합니다.

+0

죄송 합니다만, 질문을 제대로 읽지 못했을 것입니다. 이것은 내가하는 일이다. 그러나 Jens는 정답을 제시했습니다. – dexBerlin

관련 문제