簡體   English   中英

沒有可用的“ru.spb.repository.UserRepository”類型的合格 bean:預計至少有 1 個 bean 有資格作為自動裝配候選

[英]No qualifying bean of type 'ru.spb.repository.UserRepository' available: expected at least 1 bean which qualifies as autowire candidate

存儲庫類:

 package ru.spb.repository.user;

@Repository
public class AnketUserRepository implements UserRepository {

     @Autowired
     private CrudUserRepository crudRepository;

 }

界面:

package ru.spb.repository;

public interface UserRepository {
}

服務:

package ru.spb.service;

@Service
public class UserService {

   private final UserRepository repository;

   @Autowired
   public UserService (UserRepository repository){
       this.repository = repository;
   }
}

配置:在 spring-app.xml 中:

 <context:component-scan base-package="ru.spb.service"/> 

在 spring-db.xml 中:

 <context:component-scan base-package="ru.spb.repository.user"/>

但我發現以下異常:

 NoSuchBeanDefinitionException: No qualifying bean of type 'ru.spb.repository.UserRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}

我試圖在 UserRepository-interface 上添加 @Repository,但沒有成功。

您還需要注釋接口

package ru.spb.repository;

@Repository
public interface UserRepository {
}

您的組件掃描僅配置到實現類的包,但您正在自動裝配位於不同(非組件掃描)包上的接口。
移動@Repository注解的inteface,並添加ru.spb.repository到您的組件掃描

我搬家了

 <context:component-scan base-package="ru.spb.repository.user"/>  

從 spring-db.xml 到 spring-app.xml。 而這個問題就解決了。 但是我不明白這個問題的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM