这是我的代码- https://github.com/iyngaran/to-do-list
我在info.iyngaran.core.auth.repository包中有UserRepository类,并且用@Repository注释了它。
当我试图将它注入到info.iyngaran.core.auth.security包中的CustomUserDetailsService类中时,我得到了以下错误。
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)}有人能帮我找出这个问题吗?提前谢谢。
发布于 2019-05-24 20:21:51
我通过将以下代码行添加到spring boot主类修复了这个问题。
@EnableJpaRepositories({"info.iyngaran.core","info.iyngaran.todolistapi"})这解决了我的问题。以下是详细信息- https://stackoverflow.com/a/53172477/9348637
发布于 2019-05-24 00:13:32
主要问题是组件扫描。因此,请按照以下方式排列代码
在包根info.iyngaran处移动TodolistApiApplication类
并清理杂乱
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);
}
}还要使用构造函数注入(对于修复来说不是强制的)。现场注入是非常糟糕的做法
private final UserRepository userRepository;
public CustomUserDetailsService(UserRepository userRepository) {
this.userRepository = userRepository;
}https://stackoverflow.com/questions/56278879
复制相似问题