Spring Boot中SimpleDriverDataSource配置MongoDB数据源遇Driver实例化错误
解决SimpleDriverDataSource配置MongoDB数据源的问题
错误原因分析
你遇到的Cannot instantiate the type Driver错误,是因为你试图直接实例化java.sql.Driver接口(这是抽象接口,不能直接new),而且SimpleDriverDataSource的setDriverClass方法需要的是Driver的Class对象,不是Driver实例。另外你的JDBC URL格式也有误,端口和数据库名之间应该用斜杠,不是冒号。
正确配置步骤
1. 引入MongoDB JDBC驱动依赖
如果使用Maven,在pom.xml中添加依赖:
<dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-jdbc</artifactId> <version>2.0.0</version> <!-- 建议使用最新稳定版本 --> </dependency>
2. 修正DataSource配置代码
import org.springframework.jdbc.datasource.SimpleDriverDataSource; import mongodb.jdbc.MongoDriver; import javax.sql.DataSource; import org.springframework.context.annotation.Bean; @Bean protected DataSource dataSource() { SimpleDriverDataSource ds = new SimpleDriverDataSource(); // 直接传入MongoDriver的Class对象,无需手动实例化 ds.setDriverClass(MongoDriver.class); // 修正URL格式:端口后用斜杠指定目标数据库名 ds.setUrl("jdbc:mongodb://localhost:27017/spring-security-sampledb"); ds.setUsername("root"); ds.setPassword("secret"); return ds; }
额外注意事项
- 确认MongoDB服务正在
localhost:27017端口运行,且spring-security-sampledb数据库已创建 - 如果你的MongoDB启用了特定认证机制(比如SCRAM-SHA-256),要确保账号密码拥有对应数据库的访问权限
- 若使用MongoDB Atlas等云服务,需要调整URL为对应格式(包含集群地址、认证参数等)
内容的提问来源于stack exchange,提问作者Himanshu Chugh
相关产品推荐
相关产品推荐

