首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用spring-boot在依赖项注入中创建bean时出错

使用spring-boot在依赖项注入中创建bean时出错
EN

Stack Overflow用户
提问于 2019-05-23 23:48:36
回答 2查看 491关注 0票数 0

这是我的代码- https://github.com/iyngaran/to-do-list

我在info.iyngaran.core.auth.repository包中有UserRepository类,并且用@Repository注释了它。

当我试图将它注入到info.iyngaran.core.auth.security包中的CustomUserDetailsService类中时,我得到了以下错误。

代码语言:javascript
复制
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'customUserDetailsService': Unsatisfied dependency expressed through field 'userRepository'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'info.iyngaran.core.auth.repository.UserRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

有人能帮我找出这个问题吗?提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-24 20:21:51

我通过将以下代码行添加到spring boot主类修复了这个问题。

代码语言:javascript
复制
@EnableJpaRepositories({"info.iyngaran.core","info.iyngaran.todolistapi"})

这解决了我的问题。以下是详细信息- https://stackoverflow.com/a/53172477/9348637

票数 1
EN

Stack Overflow用户

发布于 2019-05-24 00:13:32

主要问题是组件扫描。因此,请按照以下方式排列代码

在包根info.iyngaran处移动TodolistApiApplication

并清理杂乱

代码语言:javascript
复制
package info.iyngaran;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import javax.annotation.PostConstruct;
import java.util.TimeZone;

@SpringBootApplication
public class TodolistApiApplication {

    @PostConstruct
    void init() {
        TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
    }


    public static void main(String[] args) {
        SpringApplication.run(TodolistApiApplication.class, args);
    }

}

还要使用构造函数注入(对于修复来说不是强制的)。现场注入是非常糟糕的做法

代码语言:javascript
复制
private final UserRepository userRepository;

public CustomUserDetailsService(UserRepository userRepository) {
    this.userRepository = userRepository;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56278879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档