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)注入的排除,加上就启动成功了。