繁体   English   中英

SpringBoot - UnsatisfiedDependencyException Spring Boot 不是扩展 CrudRepository 的 Autowiring Repository 接口

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM