当前位置: 首页 > 知识库问答 >
问题:

跨项目自动时钟导致“未找到此类Bean”异常

晋功
2023-03-14

我的项目设置如下。

如图所示,我有一个helper项目(有2@AutoWired时钟),而我的主项目有1@AutoWired时钟。这三个时钟都意味着同一个物体。

当我启动应用程序时,我得到一个错误:

org.springframework.beans.factory.unsatisfiedDependencyException:创建名为“helper2”的bean时出错:通过字段clock“表示的不满足依赖项;嵌套异常为org.springframework.beans.factory.noSuchBeanDefinitionException:没有“java.time.clock”类型的合格bean可用:至少需要一个合格的自动候选bean。依赖项批注:{@org.springframework.beans.factory.annotation.AutoWireDanNotationBeanPostProcessor{@org.springframework.beans.factory.annotation.AutoWireDanNotationBeanPostProcessor.java:586)~[spring-beans-5.0.8.release.jar:5.0.8.release]{@org.springframework.beans.factory.annotation.injectionMetadata.injection(injectionMetadata.java:91)

.

.

.

.

~[spring-beans-5.0.8.release.jar:5.0.8.release]原因:org.springframework.beans.factory.NoSuchBeanDefinitionException:没有“java.time.clock”类型的合格bean可用:至少需要一个合格的自动候选bean。依赖项注释:{@org.springframework.beans.factory.annotation.AutoWired(required=true)}(位于org.springframework.beans.factory.support.defaultlistablebeanfactory.raiseNomatchingbeanfound(位于defaultlistablebeanfactory.java:1506)~[spring-beans-5.0.8.release.jar:5.0.8.release](位于

共有2个答案

孙光临
2023-03-14

您不能自动连接java.time.clock,因为它不是spring组件。spring组件是一个被认为是用于自动检测的类。

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/stereotype/component.html

我正在编辑我的回答,但似乎@ptikobj已经以一种很好的方式回答了这个问题。此外,向类中添加@springbootconfiguration而不是只添加@configuration就可以处理componentscan,因此不需要这样做。

赫连睿
2023-03-14

spring希望java.time.clock的实现有一个Bean定义,以便能够自动连接它。由于您已经将clock.systemdefaultzone的返回值公开为@bean,所以您唯一要做的就是将@configuration添加到您的mainconfig.java中,并确保mainconfig被spring通过@componentscan@import正确地获取。

 类似资料:
  • 我有一个maven web项目,要求我包含一些第三方jar(网上没有),所以我用 我面临的问题是当我运行maven干净安装时生成的war文件不包括第3方jar。搜索后,我找到了一个解决方案,我将jar复制到lib文件夹(在项目根目录下创建)中,然后我在Pom文件中使用了以下片段 jar现在从我的lib文件夹复制到生成的war文件中的WEB-INF/lib/中。但当我运行服务时,我得到了类not f

  • 问题内容: 我从这篇博客文章中获得了帮助: 但是我发现com.mysql.jdbc.driver类未找到异常。那篇博客文章的不同之处在于,在我的案例中,他们尝试连接到mysql而不是MS SQL。到目前为止,这是我的代码:package com.example.dbtry; 请告诉我我在做什么错。我还在清单中添加了对Internet的许可。 问题答案: 从以下位置下载jar:http://www.

  • 我在将Web应用程序部署到WebLogic服务器12c时遇到问题。Web应用程序依赖于服务jar(内部依赖于Hibernate类)。当我构建战争时,它不包括Web应用程序的WEB-INF/lib/文件夹中的hibernate-entitymanager.jar,并且它的部署失败,例外是“ClassNotFoundExceptionorg.hibernate.ejb.HibernatePeraxy”

  • 我的应用程序超过了64k个方法,所以我应该实现多索引,最初我遇到的问题是“本地路径不存在”,我解决了这个问题,现在gradle生成了类1。dex和classes2。dex,但在低于Lollipop的环境中不工作。。它在Lollipop中工作得很好,因为它有天然的支持。错误是这样说的“ 看过一些教程后,他们说必须改变1.gradle2.application3.manifest 我对申请课了解不多.

  • 我试图通过JWS为我的java项目分发签名jar,我所做的是 我已经把我的班级档案装进了一个罐子 使用keytool-keytool-genkey-keystore xxx-alias xxx创建密码 使用jarsigner-keystore xxx测试对jar进行签名。jar xxx-命令 但我的错误是没有发现类异常。太阳安全工具。贾西纳。 我使用的是JDK1.6.0.21。我试着打开工具。ja

  • 这是我的清单文件 此处为我得错误堆栈跟踪: