Spring Boot YAML自动数据源配置问题-未获取数据源URL

时间:2018-08-01 07:18:19

标签: java spring spring-boot yaml microservices

当前,我们正在为较新的模块创建一个spring boot项目。

技术我们已经使用如下:

  1. Java 1.8
  2. Maven 3.5.2
  3. Spring Boot:1.5.6.RELEASE(spring-boot-starter-parent)

公共类申请{

public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
}

@Autowired
private DataSource datasource;

}

application.properties

  • spring.datasource.url = jdbc:oracle:XXX:@XXX:XXX / XXX
  • spring.datasource.username = XXX
  • spring.datasource.password = XXX
  • spring.datasource.driver-class-name = oracle.jdbc.driver.OracleDriver

application.yml

  • 春天:

    • 个人资料:
    • 有效:“开发”
    • 主要:

      -横幅模式:“关闭”

  • 春天:

    • 个人资料:dev
    • 数据源:
      • url: jdbc:oracle:XXX:@XXX:XXX / XXX
      • 用户名:XXX
      • 密码:XXX
      • 驱动程序类名称:oracle.jdbc.driver.OracleDriver

当我们将数据源信息添加为属性文件时,应用程序将按预期运行。但是作为YAML的信息意味着显示以下错误。

错误

上下文初始化期间遇到的异常-取消刷新尝试:org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为'testapplication'的bean时出错:通过字段'datasource'表示的不满足的依赖关系;嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建在类路径资源中定义名称为“ dataSource”的bean时出错 [org / springframework / boot / autoconfigure / jdbc / DataSourceConfiguration $ Tomcat.class]:Bean实例化通过工厂方法失败;嵌套的异常是org.springframework.beans.BeanInstantiationException:无法实例化[org.apache.tomcat.jdbc.pool.DataSource]:工厂方法'dataSource'引发了异常;嵌套的异常是org.springframework.boot.autoconfigure.jdbc.DataSourceProperties $ DataSourceBeanCreationException:无法确定数据库类型为NONE的嵌入式数据库驱动程序类。如果您想要嵌入式数据库,请在类路径上放置一个受支持的数据库。如果您要从特定配置文件加载数据库设置,则可能需要激活它(配置文件“ dev”当前处于活动状态)

1 个答案:

答案 0 :(得分:1)

Yml标准要求我们在冒号(:)后指定一个空格。请看看documentation   像这样更改您的yml,它应该可以正常工作。

spring:
  profiles: dev
  datasource:
     url: jdbc:oracle:XXX:@XXX:XXX/XXX
     username: XXX
     password: XXX
     driver-class-name: oracle.jdbc.driver.OracleDriver