springCloud初入门时遇到的问题

本文讲述了在配置Spring Boot应用时,由于数据源URL配置错误导致DataSource无法初始化的解决过程。作者发现将`spring.datasource`层级调整正确至关重要,即从`application`移到顶层。通过修正这个问题,应用成功运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

运行不报错了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值