问答详情
源自:2-1 SpringBoot的搭建与启动上

请问两个 dataSource 不是同一个bean吗

1. 在DataSourceConfiguration 里定义了Bean(name="dataSource ") 。

2 ,在 SessionFactoryConfiguration 里 ,

@Autowired

@Qualifier("dataSource")

3. 运行报错, 错误 的 not suitable driver.

   这两个dataSource 的类型一个是javax.sql.DataSource, 一个是ComboPooledDataSource, 请问是什么原因?

为什么 定义了一个ComboPooledDataSource类型的,后面set的时候又用了javax.sql.DataSource类型的?

提问者:慕UI9436362 2020-02-03 20:46

个回答

  • str水煮鱼
    2020-02-07 17:15:58

    是同一个bean ,

    ComboPooledDataSource 它是DataSource 的一种实现

    SessionFactoryConfiguration 里 ,

    @Autowired
    @Qualifier("dataSource")
    private DataSource dataSource;

    这里  Spring 的IOC 回根据名字去找bean 加载进来的, Qualifier 注解的作用就是 必须找到我们定义名称一样的bean


    如果DataSourceConfiguration 里定义了Bean(name="dataSourceAAA ") 

    那么@Qualifier("dataSourceAAA") 才行