0

MapperScannerConfigurer在spring应用程序上下文中配置如下:

<bean name="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
    <property name="basePackage" value="path.to.package.from.classpath.dao" />
</bean>

basePackage是在类路径中设置的 jar 文件中。

包中的一个映射器在我正在使用的服务之一中自动装配。看起来 MyBatis 无法从类路径扫描包,因为我收到错误消息,指出没有找到这样的 Bean:

No qualifying bean of type 'path.to.package.from.classpath.dao.UserMapper' available: expected at least 1 bean which qualifies as autowire candidate.

我在网上搜索过,没有发现任何类似的情况。

4

1 回答 1

0

我将在这里回答我自己的问题,因为它可能会帮助面临类似问题的人。

问题在于我最初创建 jar 的方式。iBatis 可能有不同的方式来扫描包,因为它正在工作,我认为同样可以与 MyBatis 一起工作。但是 MyBatis 可能有不同的扫描包的机制。它似乎正在寻找 jar 中的目录条目,如果找不到,它将抛出此异常。因此,请确保Add directory entries在创建 jar 时选择该选项,如下所示:

在此处输入图像描述

于 2020-01-01T16:14:24.263 回答