如何修复无法自动装配。 Spring Boot 中没有错误豆

问题描述 投票:0回答:3

我该如何解决这个错误。我是 Spring-boot 新手

spring-boot spring-mvc intellij-idea spring-security
3个回答
4
投票

正如我所看到的,春天找不到豆子

UserDetailsServiceImpl
,可能有几个原因。

首先,您可能忘记将

@Service
注释放在类的顶部
UserDetailsServiceImpl
。另外,由于上下文是关于 Spring 安全性的,所以请确保此类
UserDetailsServiceImpl
必须实现接口
UserDetailsService

@Service
public class UserDetailsServiceImpl implements UserDetailsService {
}

其次,spring可能无法扫描该文件夹。因此,请确保 Spring IOC 在初始化时必须扫描此包并配置 bean。


1
投票

为了

@Autowired
一个 bean 实例,应该使用 Spring 构造型注释来修饰一个类,例如
@Component
@Service
@Repository
@Controller
@Indexed
。只需使用这些角色注释之一装饰类,您就可以使用
@Autowired
与实例绑定。

否则,如果没有使用这些注解,你的类实例,你必须像这样手动注册到

BeanFactory

@Configuration
public class SomeClass {
    
    ...

    @Bean
    public UserDetailsServiceImpl userDetailsService() {
        return new UserDetailsServiceImpl()
    }
}

这个答案只是谈论您的具体问题,但您可以找出为什么在前面的示例中使用

@Configuration
。定义绑定的范围,单例(应用程序的一个实例)是Spring中的默认范围,如果bean应该根据您的要求处于不同的范围,则应该为bean定义范围。


0
投票

就我而言,这是愚蠢的原因。项目中的其他地方还存在另一个不同的编译错误,因此 Intellij 无法检测到资源类。

© www.soinside.com 2019 - 2024. All rights reserved.