启动 SpringBoot 应用程序时出现 No Qualifying Bean (NoSuchBeanDefinitionException) 可用错误

蒂莫西·克洛沃西

我正在向现有 SpringBoot 应用程序添加一些新组件,并且在启动应用程序时遇到 bean 定义异常。

所有的 bean/service 和其他组件都是通过注解而不是通过 spring xml 配置来配置的(我更熟悉基于 xml 的 spring 配置)。不幸的是,为了解释我的问题,我必须在下面混淆一些而不是提供真正的代码。

在应用程序中,我添加了一个新的工厂组件,将其命名为 FooSheetFactory:

package some.package;  

@Component
public class FooSheetFactory {

private final List<FooSheet> fooSheetList;

@autowired
public FooSheetFactory(List<FooSheet> fooSheetList) {
  this. fooSheetList = fooSheetList;
}

.
.
(other stuff)
.
}

此类使用名为 FooSheet 的组件:

package some.package;

@Component
public interface FooSheet {

public Foo getFoo(int param1, String param2);
}

工厂在应用程序的其他地方以如下方式实例化:

.
.
@Autowire
FooSheetFactory fsf;
.
.

启动 SpringBoot 应用程序时,出现以下错误:

Error creating bean with name "FooSheetFactory " defined 
in file [ ~path/target/classes/..../FooSheetFactory.class]: Unsatisfied dependency 
expressed through constructor parameter 0; nested exception 
is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of 
type 'java.util.List<some.package.FooSheet>' available. Expected at least 1 bean which 
qualifies as autowire candidate. Dependency annotations: {}

从表面上看,这种实例化对我来说类似于我们在应用程序其他地方使用 spring 的方式。类和接口都在同一个包中,这个包中的其他类使用类似的注解不会在启动时抛出错误。如果您对我的问题可能有什么见解,我将不胜感激。谢谢你。

斯帕索耶·彼得罗尼耶维奇

不要把@Component注解放在接口上,把它放在实现类上。您的异常抱怨说它找不到您的接口的任何实现。你应该有:

@Component
class FooSheetImpl implements FooSheet {
  ...
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

尝试在现有Gradle项目上启动springboot应用程序时出现错误

登录 SpringBoot 应用程序时出现禁止错误

运行springboot应用程序时出现错误

启动我的应用程序时出现错误消息

启动快速应用程序时出现错误消息

在Tomcat中部署Spring Boot应用程序时没有名为'loggingFilter'的bean可用错误

尝试启动springboot应用程序时获取服务器时区值“未知”错误

启动应用程序时发生错误

尝试访问Amazon Elastic Bean Stalk上的Spring Boot应用程序时出现错误404

在本地主机上运行springboot应用程序时出现错误

启动使用Tycho构建的Eclipse应用程序时出现“无法获取应用程序服务”错误

启动Play Framework 2.4应用程序时出现神秘的注入错误消息

当我尝试启动我的 Node.js 应用程序时出现 UnhandledPromiseRejectionWarning 错误

更新到Xcode 10.2 beta 3后,启动应用程序时出现Swift错误

启动龙卷风应用程序时出现pycket错误-语法

启动转换后的应用程序时出现“无效参数”错误

WeBrick无法启动,在访问新的Rails应用程序时出现白色错误

启动我的 node.js 应用程序时出现错误 connect ECONNREFUSED 127.0.0.1:3306

在Gear S2设备上启动Web应用程序时出现错误81

NoSuchBeanDefinitionException: 没有可用类型的合格 bean

NoSuchBeanDefinitionException:没有可用的名为“ authService”的bean

当我尝试在设备中启动我的应用程序时,在xcode中由于启动选项nil出现错误?

AWS错误:启动应用程序时发生错误

启动 SpringBoot 应用程序时使用 JDBC 驱动程序创建 Postgres 数据库?

面对此错误,在启动 react js 应用程序时

SpringBoot应用程序中没有可用类型的合格Bean

如何跳过springboot中失败的bean以避免报告失败:771 >>应用程序启动失败

尝试在物理设备上启动监视工具包应用程序时出现FBSOpenApplicationErrorDomain错误3

在Bluemix中启动Python 3应用程序时出现错误“ ImportError:没有名为请求的模块”