最近在学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';详情如下:
而问题就在于我的导包:
import org.apache.tomcat.jdbc.pool.DataSource;
最开始,我很自然的用了看着像jdbc的包,结果证明改都不对,后面尝试换了包,就完美运行了,也成功使用了druid。
这个坑我百度了很多都没有想关的,所以特此记录。希望大家不要像我遇到这么傻的错误。哈哈 ,下面是正确的包:
import javax.sql.DataSource;