解决多数据源项目启动报错:No qualifying bean of type ‘org.mybatis.spring.SqlSessionTemplate‘ available: expected
报错信息提示无合格的SqlSessionFactoryBean类型的Bean,这通常是Spring配置中缺失了对MyBatis的SqlSessionFactoryBean或Mapper扫描配置导致的。
解决方法:
- 确保在Spring配置文件中或者通过注解配置了SqlSessionFactoryBean。
- 确保已经配置了MyBatis的mapper文件或接口的扫描路径,以便Spring能够自动创建代理对象。
- 如果使用Java配置,确保有相应的@Bean方法来提供SqlSessionFactory实例。
- 检查是否有多个数据源配置,确保每个数据源都有对应的SqlSessionFactoryBean实例。
- 如果使用Spring Boot,确保有正确的Starter依赖,如
mybatis-spring-boot-starter
。
示例配置:
<!-- 配置SqlSessionFactoryBean -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 配置MyBatis配置文件 -->
<property name="configLocation" value="classpath:mybatis-config.xml" />
<!-- 配置mapper文件 -->
<property name="mapperLocations" value="classpath*:mybatis/mappers/*.xml" />
</bean>
<!-- 配置Mapper接口扫描 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.yourcompany.project.mapper" />
</bean>
确保这些配置与你的项目结构和需求相匹配。如果使用注解配置,则可能需要使用@MapperScan
注解来指定扫描的包路径。
评论已关闭