数据源的Spring引导自动配置 - 驱动程序不能为空

时间:2017-02-06 16:06:22

标签: spring spring-boot

我将我的数据源的Spring启动配置切换为使用SimpleDriverDataSource类型,但是一旦我这样做,我就会收到关于&#34的错误;驱动程序不能为空"

@Bean
@ConfigurationProperties("datasource")
public DataSource dataSource() {
    return DataSourceBuilder.create().type(SimpleDriverDataSource.class).build();
}

如果我删除对.type(SimpleDriverDataSource.class)的调用,那么它再次正常工作。

我是否需要以某种方式更改我的属性名称?

datasource.url=jdbc:blah blah blah
datasource.driverClassName=blah blah

我确实尝试过datasource.driver,但这并没有改变任何东西。

2 个答案:

答案 0 :(得分:1)

如果打开SimpleDriverDataSource类,您将看到您有setDriverClass()方法。因此,您需要将配置更改为datasource.driverClass以使用能够创建驱动程序属性。

或者你可以像这样创建你的bean:

@Bean
public DataSource dataSource() {
    Driver driver = new org.postgresql.Driver();
    return new SimpleDriverDataSource(driver, 
            "url",
            "user",
            "pass");
}

答案 1 :(得分:0)

在使用AC_COMPILE_IFELSE时,我对于未填充的DataSource值也有些麻烦。对我来说,下面的灵魂奏效了:

DataSourceBuilder

只需将@Bean @ConfigurationProperties("datasource") public DataSourceProperties developerPortalDataSourceProperties() { return new DataSourceProperties(); } @Bean public DataSource developerPortalDataSource(DataSourceProperties properties) { return properties.initializeDataSourceBuilder().type(HikariDataSource.class).build(); } 替换为您使用的DataSource实现。希望对您有所帮助。