SpringBoot 不配置数据源报错

报错:

*************************** APPLICATION FAILED TO START *************************** Description: Failed to bind properties under ‘spring.datasource.type’ to java.lang.Class<javax.sql.DataSource>: Property: spring.datasource.type Value: com.alibaba.druid.pool.DruidDataSource Origin: “spring.datasource.type” from property source “bootstrapProperties” Reason: No converter found capable of converting from type [java.lang.String] to type [java.lang.Class<javax.sql.DataSource>] Action: Update your application’s configuration


总结:

启动失败时描述信息很重要。需要看下Origin(源头)信息,再看下边堆栈信息。只百度描述信息有可能错误源头信息不一样。

错误原因:

对于数据访问层,无论是Sql还是NoSql,SpringBoot默认采用整合SpringData的方式进行统一管理,添加大量的自动配置,屏蔽了很多设置。启动时会自动注入数据源。而此时在配置文件中并没有配置数据源信息,因此会抛出异常。 此服务中在bootstrap.yml文件中读取了config服务中的配置文件信息。其中包括了关于数据源的配置。

解决方案(两种):

一、启动类加注解:
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class,
        DataSourceTransactionManagerAutoConfiguration.class,
        HibernateJpaAutoConfiguration.class})

之前只加了排除注入DataSourceAutoConfiguration和HibernateJpaAutoConfiguration,不知为何不好使。后来搜到还可以加数据源事务管理自动配置(DataSourceTransactionManagerAutoConfiguration)注入的排除,加上就启动成功了。

二、删除读取数据库信息的配置
数据库配置信息:
删除读取配置:
经验分享 程序员 微信小程序 职场和发展