[英]Spring JPA Data Repository failed to create bean for interface that extends CrudRepository
[英]SpringBoot - UnsatisfiedDependencyException Spring Boot not Autowiring Repository interface which extends CrudRepository
Spring Boot 应用程序在启动服务器时抛出异常。
例外是:
上下文初始化期间遇到异常 - 取消刷新尝试:org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为“userController”的 bean 时出错:通过字段“userService”表达的不满意依赖; 嵌套异常是 org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为“userService”的 bean 时出错:通过字段“userRepository”表达的不满意依赖; 嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有可用的“yhcmain.healthcare.repositories.UserRepository”类型的合格 bean:预计至少有 1 个 bean 有资格作为自动装配候选。 依赖注解:{@org.springframework.beans.factory.annotation.Autowired(required=true)}
应用程序无法启动
描述:
yhcmain.healthcare.service.user.UserServiceImpl 中的字段 userRepository 需要一个无法找到的“yhcmain.healthcare.repositories.UserRepository”类型的 bean。
行动:
考虑在您的配置中定义一个“yhcmain.healthcare.repositories.UserRepository”类型的 bean
控制器:
@RestController
@CrossOrigin("*")
public class UserController {
@Autowired
private ServiceResponse response;
@Autowired
private UserService userService;
@RequestMapping(value = "/index", method = RequestMethod.POST, headers = "Accept=application/json")
public ResponseEntity<ServiceResponse> signUpAttempt(@RequestBody User user) {
...
...
}
}
服务:
@Service("userService")
public class UserServiceImpl implements UserService {
@Autowired
private UserRepository userRepository;
public User createUser(User user) {
return this.userRepository.save(user);
}
}
存储库:
@Repository("userRepository")
public interface UserRepository extends CrudRepository<User, String> {
}
主要应用:
@SpringBootApplication
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class HealthcareApplication implements WebMvcConfigurer {
public static void main(String[] args) {
SpringApplication.run(HealthcareApplication.class, args);
}
@Override
public void addCorsMappings(CorsRegistry registry) {
...
...
}
}
您需要在存储库定义中的CrudRepository接口中提供实体的primary key
(ID 为 Long 或 Integer),并确保@ComponentScan("RootDirectoryURL")
工作正常。
...
@Repository("userRepository")
public interface UserRepository extends CrudRepository<User, PrimaryKey> {}
...
快乐编码.. :)
您需要在您的配置类(HealthcareApplication)中添加以下注释:
@EnableJpaRepositories("<repository-package>")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.