Spring 从未指定的包创建 bean 失败

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

我创建了一个工件“MyElectricity-aWattar”,它代表 MyBatis 处理 MariaDB 数据库。效果很好。

还有另一个工件“MyElectricity-Sungrow”,它需要“MyElectricity-aWattar”中的方法,因此该工件被定义为“MyElectricity-Sungrow”的依赖项。

所有类都是由Spring实例化的。这意味着 DAO 和 Mapper 应该被实例化 - 但这会失败

No qualifying bean of type 'de.gombers.electricity.mybatis.awattar.mappers.aWattarMapper' available

我不明白为什么会失败。 Mapper 是使用 MyBatis @Mapper-Annotation 定义的 - 如果从“MyElectricity-aWattar”启动 @SpringBootApplication 时完成初始化,则可以正常工作。 我尝试通过不向 @ComponenScan-Annotation 指定 DAO 包来跳过 DAO 的实例化。

看起来像这样:

@SpringBootApplication
@ComponentScan({"de.gombers.modbus.sungrow", "de.gombers.electricity.awattar"})

而 DAO 和 Mapper 则维护在 de.gombers.electricity 包中。mybatis.awattar”。

但是,我看到了错误:

Error creating bean with name 'aWattarDAO' defined in file [E:\$SysProg\GIT\MyHome\MyElectricity\MyElectricity-AWattar\target\classes\de\gombers\electricity\mybatis\awattar\mappers\aWattarDAO.class]: Unsatisfied dependency expressed through constructor parameter 0: No qualifying bean of type 'de.gombers.electricity.mybatis.awattar.mappers.aWattarMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}

所以我还有两个问题:

  1. 为什么Mapper实例化失败
  2. 为什么会发生 DAO 的实例化 - 尽管它的包与
  3. 不匹配

我正在使用 Java 17、Maven 3.9.9、Spring 3.4.0 和 myBatis 3.5.4 运行

java spring-boot mybatis mybatis-mapper
1个回答
0
投票

抱歉 - 我的代码中有拼写错误。我已经在这个问题上花了几个小时了,但直到现在还没有看到它

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