Java 如何修复SpringBoot中的“应用程序启动失败”,它要求定义一个bean

Java 如何修复SpringBoot中的“应用程序启动失败”,它要求定义一个bean,java,spring,spring-boot,spring-security,dependency-injection,Java,Spring,Spring Boot,Spring Security,Dependency Injection,我的Spring boot应用程序运行,但显示启动失败,并显示以下内容: com.example.security.websecurity配置中的字段userDetailsService需要找不到类型为“com.example.security.UserDetailsServiceImpl”的bean 注入点具有以下注释: @org.springframework.beans.factory.annotation.Autowiredrequired=true 考虑在配置中定义“com.examp

我的Spring boot应用程序运行,但显示启动失败,并显示以下内容:

com.example.security.websecurity配置中的字段userDetailsService需要找不到类型为“com.example.security.UserDetailsServiceImpl”的bean

注入点具有以下注释:

@org.springframework.beans.factory.annotation.Autowiredrequired=true 考虑在配置中定义“com.example.security.UserDetailsServiceImpl”类型的bean

我已经尝试在我的UserDetailsServiceImpl类中添加@Bean和@Service注释,并在pom.xml文件中添加beanutils依赖项,但仍然会发出相同的消息,即启动失败

我的UserDetailsServiceImpl类:


它应该说成功运行了Spring Boot应用程序。

在UserDetailsServiceImpl类上放置@Service注释。

在UserDetailsServiceImpl类上放置@Service注释。

BeanUtils在这种情况下对您没有帮助。无法正确注入UserDetailsService,因为它未注册为bean,只有以下注释适合这样做:

@存储库、@Service、@Controller或@Component,在这种情况下我强烈推荐@Service。 注释必须放置在类级别,因为您要注入其实例。当然,类必须是接口的一个实现,接口是注入的实现

@Service // must be on the class level
public class UserDetailsServiceImpl implements UserDetailsService {

    @Autowired
    private UserRepository userRepo;

    @Override
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
        // method implementation...
    }
}
除此之外,我建议您阅读以下链接:

关于依赖注入,Spring正在进行。 关于和处的组件扫描和组件类型 关于构造函数注入相对于现场一点和一点的优势
在这种情况下,小海狸帮不了你。无法正确注入UserDetailsService,因为它未注册为bean,只有以下注释适合这样做:

@存储库、@Service、@Controller或@Component,在这种情况下我强烈推荐@Service。 注释必须放置在类级别,因为您要注入其实例。当然,类必须是接口的一个实现,接口是注入的实现

@Service // must be on the class level
public class UserDetailsServiceImpl implements UserDetailsService {

    @Autowired
    private UserRepository userRepo;

    @Override
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
        // method implementation...
    }
}
除此之外,我建议您阅读以下链接:

关于依赖注入,Spring正在进行。 关于和处的组件扫描和组件类型 关于构造函数注入相对于现场一点和一点的优势
显示这个bean应该在哪里,我对此不太确定。如果我必须猜测的话,我必须说UserRepositoryShow这个bean应该在哪里,我对此不太确定。如果我不得不猜测,我必须说userrepository很高兴它能起作用,你是受欢迎的:请不要忘记阅读那些文章来与Spring相处融洽。很高兴它能起作用,你是受欢迎的:请不要忘记阅读那些文章来与Spring相处融洽。