springboot集成mybatis时提示有多个Mapper(dao)实例
我在使用springboot集成mybatis后,项目编译成功,但是在启动Application运行项目时,提示dao(mapper接口)有多个实例。
错误信息如下
springboot\dao\CityDao.class,这个CityDao是我定义的一个Mapepr接口,它被service层引用。
其他配置和代码如下:
1、application.properties
2、CityDao.java
3、cityMapper.xml
4、CityServiceImpl.java
5、App.java 负责启动springboot
我检查了半天也没找出原因,请大神们指教,谢谢!
错误信息如下
Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.
2017-05-22 10:51:45.858 ERROR 2076 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
file [E:\Workspaces\springboot-mybatis\target\classes\springboot\dao\CityDao.class] required a single bean, but 4 were found:
- &cityDao: defined in file [E:\Workspaces\springboot-mybatis\target\classes\springboot\dao\CityDao.class]
- systemEnvironment: a programmatically registered singleton - contextParameters: a programmatically registered singleton - contextAttributes: a programmatically registered singleton
Action:
Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumed
springboot\dao\CityDao.class,这个CityDao是我定义的一个Mapepr接口,它被service层引用。
其他配置和代码如下:
1、application.properties
## jdbc source
spring.datasource.url=jdbc:mysql://localhost:3306/springbootdb?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
## Mybatis
mybatis.typeAliasesPackage=springboot.entity
mybatis.mapperLocations=classpath\:mapper/*.xml
2、CityDao.java
public interface CityDao {
City get(int id);
}
3、cityMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="springboot.dao.CityDao" >
<resultMap type="springboot.entity.City" id="BaseResultMap">
<id column="id" property="id" />
<result column="province_id" property="provinceId" />
<result column="city_name" property="cityName" jdbcType="VARCHAR"/>
<result column="description" property="description" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List" >
id,province_id,city_name,description
</sql>
<select id="get" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from city
where id = #{id}
</select>
</mapper>
4、CityServiceImpl.java
@Service
public class CityServiceImpl implements CityService{
@Autowired
private CityDao cityDao;
public City get(String id){
return cityDao.get(Integer.parseInt(id));
}
}
5、App.java 负责启动springboot
package springboot;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("springboot.dao")
public class App
{
public static void main( String[] args )
{
SpringApplication.run(App.class, args);
}
}
我检查了半天也没找出原因,请大神们指教,谢谢!

...全文
相关推荐
mybatis-plus反向工程 自动生成3层架构的文件controller,service,dao,mapper.zip
mybatis-plus反向工程 自动生成3层架构的文件controller,service,dao,mapper.zip
解决SpringBoot整合Mybatis扫描不到Mapper的问题
主要介绍了解决SpringBoot整合Mybatis扫描不到Mapper的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
springboot + mybatis(通用mapper) + druid多数据源
springboot + mybatis(通用mapper) + druid多数据源
SpringBoot整合MyBatis逆向工程及 MyBatis通用Mapper实例详解
主要介绍了SpringBoot整合MyBatis逆向工程及 MyBatis通用Mapper实例详解 ,需要的朋友可以参考下
SpringBoot集成MyBatis的分页插件PageHelper实例代码
主要介绍了SpringBoot集成MyBatis的分页插件PageHelper的相关操作,需要的朋友可以参考下


Web 开发
