springboot配置druid连接池

最近在学springboot时遇到了很无语的问题。

springboot默认连接池是tomcat,我想换成druid的。

如下,很简单,只需要咋yml配置下加上

spring:
  datasource:
    username: root
    password: 123456
    url: jdbc:mysql://localhost:3306/jdbc?useSSL=false
    driver-class-name: com.mysql.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource

properties配置差不多,只是格式有点区别,我在这就不说明了。

下面是测试类,看是否成功使用druid连接池:

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBootDataJdbcApplicationTests {

    @Autowired
    DataSource dataSource;

    @Test
    public void contextLoads() throws SQLException {
        System.out.println(dataSource.getClass());

        Connection connection = dataSource.getConnection();
        System.out.println(connection);
        connection.close();
    }

     很遗憾,报错了。真的是个巨坑,找了老师、查了百度都没有找到,当然不怪他们,因为不是面对面的 难免疏忽。

报错

      Error creating bean with name 'com.zlt.springbootdatajdbc.SpringBootDataJdbcApplicationTests': Unsatisfied dependency expressed through field 'dataSource';详情如下:

springboot配置druid连接池

而问题就在于我的导包:

import org.apache.tomcat.jdbc.pool.DataSource;

最开始,我很自然的用了看着像jdbc的包,结果证明改都不对,后面尝试换了包,就完美运行了,也成功使用了druid。

这个坑我百度了很多都没有想关的,所以特此记录。希望大家不要像我遇到这么傻的错误。哈哈 ,下面是正确的包:

import javax.sql.DataSource;