UnsatisfiedDependencyException:Error 正在创建名称为 'employeeController' 的 bean:通过字段 'repository' 表示的不满足的依赖关系

UnsatisfiedDependencyException:Error creating bean with name 'employeeController': Unsatisfied dependency expressed through field 'repository'

我遇到以下错误:

-取消刷新尝试:org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为 'employeeController' 的 bean 时出错:通过字段 'repository' 表示的不满足依赖关系;嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有 'com.example.demo.EmployeeRepository' 类型的合格 bean 可用:预计至少有 1 个有资格作为候选者的 bean。依赖注解:{@org.springframework.beans.factory.annotation.Autowired(required=true)}

下面是我的代码(我没有故意做任何服务class,通过添加服务class发生同样的错误)

EmployeeController.java

    @RestController
    public class EmployeeController {
    
        @Autowired
        EmployeeRepository repository;
        
        @PostMapping("/employee/add")
        public Employee addEmployee(@RequestBody Employee emp)
        {
            return repository.save(emp);
        }
        
        @GetMapping("/employee/{id}")
        public Optional<Employee> getEmployee(@PathVariable Integer id)
        {
            return repository.findById(id);
        }
        
        @PutMapping("/employee/{id}")
        public Employee updateEmployee(@PathVariable Integer id,@RequestBody Employee emp)
        {
            Optional<Employee> employee=repository.findById(id);
            if(employee.isPresent())
            {
                return repository.save(emp);
            }
            else
            {
                return null;
            }
        }
        
        @DeleteMapping("/employee/{id}")
        public String deleteEmployee(@PathVariable Integer id)
        {
            repository.deleteById(id);
            return "Document Deleted";
        }
            
        }

EmployeeRepository.java

    @Repository
    public interface EmployeeRepository extends CouchbaseRepository<Employee, Integer>{
        
    
    }

我无法理解为什么在使用 @AutowiredemployeeController 无法获得 employeeRepository 的依赖项。请告诉我这里有什么问题

你必须导入包 org.springframework.data.repository.Repository;

因为如果你去 CouchBaseRepository,它不是从原型扩展的: https://docs.spring.io/spring-data/couchbase/docs/current/api/org/springframework/data/couchbase/repository/CouchbaseRepository.html

您可以创建一个扩展 AbstractCouchbaseConfiguration 的配置 class 并覆盖其方法,您需要在其中指定 Couchbase 的 IP 地址、存储桶名称、用户名和密码。我希望它能在之后起作用。