在开发中我再applicationContext-dao.xml中加入了mapper扫描器
- <!–mapper扫描器–>
- <bean class=“org.mybatis.spring.mapper.MapperScannerConfigurer”>
- <!–扫描包路径,如果需要扫描多个包,中间使用半角逗号隔开–>
- <property name=“basePackage” value=“com.qianlv.ssmdemo.mapper” />
- <!–这里不用sqlSessionFactory是因为如果用会导致上面配置的dataSource失效–>
- <property name=“sqlSessionFactoryBeanName” value=“sqlSessionFactory” />
- </bean>
<!--mapper扫描器-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!--扫描包路径,如果需要扫描多个包,中间使用半角逗号隔开-->
<property name="basePackage" value="com.qianlv.ssmdemo.mapper" />
<!--这里不用sqlSessionFactory是因为如果用会导致上面配置的dataSource失效-->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>
但是在编辑一个Service中注入mapper会提示could not autowire,但是可以正常执行的。
- public class ItemsServiceImpl implements com.qianlv.ssmdemo.service.ItemsService{
- @Autowired
- ItemsMapperCustom itemsMapperCustom;
- public List<ItemsCustom> findItemsList(ItemsQueryVo itemsQueryVo) throws Exception {
- return itemsMapperCustom.findItemsList(itemsQueryVo);
- }
- }
public class ItemsServiceImpl implements com.qianlv.ssmdemo.service.ItemsService{
@Autowired
ItemsMapperCustom itemsMapperCustom;
public List<ItemsCustom> findItemsList(ItemsQueryVo itemsQueryVo) throws Exception {
return itemsMapperCustom.findItemsList(itemsQueryVo);
}
}
<div id="cnblogs_post_body"><p>工具及背景: IntelliJ IDEA 2016.1.3 Ultimate。spring boot, maven项目,利用mybatis 注解的方式查询mysql。</p>
业务逻辑关系:controller –> Service接口 —-> serverImpl —>Dao –>DaoImpl —> mapper –>db
问题:mapper提示Could not autowire. No beans of … type found?如图:
其中ProductDaoMyBatisMapper是个接口,用于查询mysql,结构如下图:
解决办法:将第一张图中的ProductDaoMyBatis类序列化,即实现Serializable 接口即可,如下图:
补:pom.xml
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
方法二: 还有一种方式,修改idea配置,将spring 的severity的值设置为"warning", 如下:
链接: http://blog.csdn.net/xlxxybz1314/article/details/51404700