目前,我们正在为较新的模块创建一个Spring Boot项目。

技术我们使用了以下方法:

  • Java 1.8
  • Maven 3.5.2
  • 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
  • 春天:
  • 档案:
  • active:“dev”
  • 主要:

    -横幅广告模式:“关闭”
  • 春天:
  • 档案:dev
  • 数据源:
  • 网址: 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:创建类路径资源 [org / springframework / boot / autoconfigure / jdbc / DataSourceConfiguration $ Tomcat.class]中定义的名称为“dataSource”的bean时出错:通过工厂方法实例化Bean失败嵌套的异常是org.springframework.beans.BeanInstantiationException:无法实例化[org.apache.tomcat.jdbc.pool.DataSource]:工厂方法'dataSource'引发了异常;嵌套的异常是org.springframework.boot.autoconfigure.jdbc.DataSourceProperties $ DataSourceBeanCreationException:无法确定数据库类型NONE的嵌入式数据库驱动程序类。如果您想要一个嵌入式数据库,请在类路径上放置一个受支持的数据库。如果您有要从特定概要文件加载的数据库设置,则可能需要激活它(概要文件“dev”当前处于 Activity 状态)

    最佳答案

    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
    

    关于java - Spring Boot YAML自动数据源配置问题-未获取数据源URL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51627473/

    10-16 17:41