Description:
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
Reason: Failed to determine a suitable driver class
在更换nacos时,经常出现这个错误
目前我的总结原因如下:
1.单数据源配置切换成多数据源配置时,需要导入新的依赖
<dependency> <groupId>com.baomidou</groupId> <artifactId>dynamic-datasource-spring-boot-starter</artifactId> </dependency>
2.同时在Application类中添加
@SpringBootApplication(exclude= {DruidDataSourceAutoConfigure.class})
需要排除Druid数据库自动装配
出现问题:
在排除数据库自动装配时,我使用的是
@SpringBootApplication(exclude= {DataSourceAutoConfigure.class})
查询了这两个class的区别,ai智能回复如下:
DruidDataSourceAutoConfigure和DataSourceAutoConfiguration均是Spring Boot的自动配置类,主要负责管理数据库连接池。其中,DruidDataSourceAutoConfigure是针对阿里巴巴开源的Druid数据源的自动配置,而DataSourceAutoConfiguration则是更为通用的数据源自动配置。
Druid数据源在市场上占有优势,相较于spring推荐的DBCP和hibernate推荐的C3P0、Proxool等其他数据库连接池,它提供了更多的特性和优化。当使用Druid作为数据库连接池时,需要在Spring Boot项目的application类上添加注解@EnableAutoConfiguration(exclude={DruidDataSourceAutoConfigure.class})来排除对DruidDataSourceAutoConfigure的自动配置。这是因为如果未排除,程序可能会因为多个数据源配置冲突而导致错误。
在Spring Boot中,除了Druid和DataSourceAutoConfiguration外,还有其他如Hikari、Tomcat和Dbcp2等数据源的自动配置。这些数据源各自有自己的特点和适用场景,选择哪一个取决于项目的具体需求。
总的来说,DruidDataSourceAutoConfigure和DataSourceAutoConfiguration都是Spring Boot为简化数据库连接池配置而提供的自动配置方案,但它们针对的数据源类型不同。在实际项目中,根据需要选择合适的数据源并进行相应的配置。
简单记录