目前,我们正在为我们的新模块创建一个Spring Boot项目。
我们使用的技术如下:
- Java 1.8
- Maven 3.5.2
- Spring Boot: 1.5.6.RELEASE (spring-boot-starter-parent)
public class Application {
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
spring:
- profiles:
- active: "dev"
- main:
- banner-mode: "off"
spring:
- profiles: dev
- datasource:
- url:jdbc:oracle:XXX:@XXX:XXX/XXX
- username:XXX
- password:XXX
- driver-class-name:oracle.jdbc.driver.OracleDriver
当我们将数据源信息作为属性文件添加时,应用程序按预期工作。但是如果使用 YAML 格式,则会显示以下错误。
错误
在上下文初始化期间遇到异常——取消刷新尝试:org.springframework.beans.factory.UnsatisfiedDependencyException:创建 bean 的名称为‘testapplication’的字段 'datasource' 未满足依赖项;嵌套异常是 org.springframework.beans.factory.BeanCreationException:定义在类路径资源中的bean 名称为“dataSource”的创建出错 [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")。
- user10164097
driver-class-name:oracle.jdbc.driver.OracleDriver
冒号后面有空格吗?如果没有,那是错误的。根据 yml 约定,你需要在冒号后面加上一个空格。 - pvpkiran