我创建了一个工件“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: {}
所以我还有两个问题:
我正在使用 Java 17、Maven 3.9.9、Spring 3.4.0 和 myBatis 3.5.4 运行
抱歉 - 我的代码中有拼写错误。我已经在这个问题上花了几个小时了,但直到现在还没有看到它