IDEA升级Spring Boot至2.7.1提示找不到HttpSecurity类型Bean报错
IDEA提示「Could not autowire. No beans of 'HttpSecurity' type found」的原因
这个提示是IntelliJ IDEA静态检查误报,和代码逻辑、Spring依赖配置无关,因此不会影响项目实际启动运行,出现的具体原因如下:
- Spring Boot 2.4.4版本中,Spring Security的自动配置类会以显式代码的方式声明
HttpSecurity类型的Bean,IDEA 2022.1旗舰版自带的Spring静态检查插件可以直接扫描到这个显式Bean定义,因此不会抛出注入错误提示。 - Spring Boot升级到2.7.1版本后,
HttpSecurity的注册逻辑做了调整,不再在自动配置类中写显式的Bean声明代码,改为在容器启动阶段通过注解驱动的动态机制注册Bean。2022.1版本的IDEA Spring插件没有适配这种新的动态Bean注册逻辑,静态扫描阶段识别不到运行时才会生成的HttpSecurityBean,就会抛出找不到对应Bean的错误提示。
如果需要消除这个IDE提示,有两种可选方案:
- 直接在IDEA的警告选项中忽略该类注入检查提示,不需要修改任何业务代码,完全不影响项目正常运行。
- 将IntelliJ IDEA升级到2022.2及以上版本,高版本内置的Spring插件已经完成了对Spring Boot 2.7.x版本Bean注册逻辑的适配,不会再出现这类误报。
内容的提问来源于stack exchange,提问作者A Thomas
相关产品推荐
相关产品推荐

