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>{
}
我无法理解为什么在使用 @Autowired
时 employeeController
无法获得 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 地址、存储桶名称、用户名和密码。我希望它能在之后起作用。
我遇到以下错误:
-取消刷新尝试: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>{
}
我无法理解为什么在使用 @Autowired
时 employeeController
无法获得 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 地址、存储桶名称、用户名和密码。我希望它能在之后起作用。