lihengming / spring-boot-api-project-seed

:seedling::rocket:一个基于Spring Boot & MyBatis的种子项目,用于快速构建中小型API、RESTful API项目~
9.59k stars 3.79k forks source link

Could not autowire. There is more than one bean of 'DataSource' type. #31

Closed wenqibo closed 7 years ago

wenqibo commented 7 years ago

在Mybatis & Mapper & PageHelper 配置类 MybatisConfigurer 里面,29行有一个报错: qq 20170721115808

Could not autowire. There is more than one bean of 'DataSource' type. Beans: dataSource   (DataSourceConfiguration.class) dataSource   (DataSourceConfiguration.class) less... (Ctrl+F1) Checks autowiring problems in a bean class.

环境 Intellij Ide 2017.2 jdk1.8

lihengming commented 7 years ago

@wenqibo Hi,这不是报错啦,是IDE的温馨提示而已,不用理会。

它就是告诉你没有发现定义了DataSouce类型的Bean,可能会注入失败(其实不会的,在启动时会自动配置并创建数据源的),这提示和在Service内注入Mapper接口的提示一样,Mapper接口在Spring上下文启动时才会生成实现类,而IDE不知道。

你可以将这个提示改为warn级别,步骤如下(IntelliJ IDEA)

wenqibo commented 7 years ago

好的,谢谢

wenqibo commented 7 years ago

@lihengming 能否这样写呢: public SqlSessionFactory sqlSessionFactoryBean(@Qualifier("dataSource") DataSource dataSource) throws Exception { 加一个Qualifier修饰符

lihengming commented 7 years ago

可以,如果有多个数据源的话,可以用它来指定要注入的是哪个数据源,不过目前就一个数据源,加上没有任何实际意义。

wenqibo commented 7 years ago

@lihengming 好的。

SuperZhouyong commented 6 years ago

楼主,这个多个数据源,有demo吗。初次写后台,不是很会