Description:
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
配置DataSource失败:'url'属性未指定,无法配置嵌入式数据源。
百度之后大多数回答,都是url、userName等没写好,然后我再三确认都学好的。
#spring的相关配置
spring:
application:
name: springcloud-provider-dept
datasource:
type: com.zaxxer.hikari.HikariDataSource # 数据源
driver-class-name: com.mysql.cj.jdbc.Driver # mysql驱动
url: jdbc:mysql://localhost:3306/springcloud01?characterEncoding=utf-8&useSSL=false&serverTimezone=Hongkong&allowPublicKeyRetrieval=true
username: root
password: root
max-idle: 10
max-wait: 10000
min-idle: 5
initial-size: 5
有个回答是让我把启动类@SpringBootApplication
注解加上(exclude ={DataSourceAutoConfiguration.class})
,加上之后问题变了。
Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
然后再百度,回答都是让删除启动类上的(exclude ={DataSourceAutoConfiguration.class})
,这不是死循环嘛,心情瞬间不好了。
但没放弃这个demo,直接回到家,才无意间发现问题,就是我错误的application.yml
里的datasource
层级是这样的
spring:
application:
name: springcloud-provider-dept
datasource:
type: com.zaxxer.hikari.HikariDataSource # 数据源
driver-class-name: com.mysql.cj.jdbc.Driver # mysql驱动
url: jdbc:mysql://localhost:3306/springcloud01?characterEncoding=utf-8&useSSL=false&serverTimezone=Hongkong&allowPublicKeyRetrieval=true
username: root
password: root
datasource
被归属到了application
下,相当于spirng.application.datasource.url
,正确的应该是spirng.datasource.url
,把datasource
全部向前移出
#spring的相关配置
spring:
application:
name: springcloud-provider-dept
datasource:
type: com.zaxxer.hikari.HikariDataSource # 数据源
driver-class-name: com.mysql.cj.jdbc.Driver # mysql驱动
url: jdbc:mysql://localhost:3306/springcloud01?characterEncoding=utf-8&useSSL=false&serverTimezone=Hongkong&allowPublicKeyRetrieval=true
username: root
password: root
max-idle: 10
max-wait: 10000
min-idle: 5
initial-size: 5
运行不报错了