我一直在使用这里提到的一些弹簧特性:application-properties
尤其是liquibase
属性。
在我的yml文件中,如果我使用yml的树状语法:
spring:
liquibase:
change-log: classpath:/db/changelog/db.changelog-master-test-h2.yml
Spring不会获取该值。 (更具体地说,Spring的org.springframework.boot.autoconfigure.liquibase.LiquibaseProperties类不会获取该值)
但是,如果我使用“属性文件”语法:
spring.liquibase.change-log: my-path
Spring确实获取了该值。
给我的印象是,在Spring框架中,这两种语法是可以互换的,但显然不是。
这是怎么回事?
注意:我已经尝试过这些变体。
这些作品:
spring.liquibase.change-log: classpath:/db/changelog/db.changelog-master-test-h2.yml
spring.liquibase.changeLog: classpath:/db/changelog/db.changelog-master-test-h2.yml
这些无效:
spring:
liquibase:
change-log: classpath:/db/changelog/db.changelog-master-test-h2.yml
spring:
liquibase:
changeLog: classpath:/db/changelog/db.changelog-master-test-h2.yml
---
spring.profile: h2
spring:
datasource:
url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
driver-class-name: org.h2.Driver
jpa:
database: h2
hibernate:
ddl-auto: none
properties:
hibernate:
dialect: org.hibernate.dialect.H2Dialect
format_sql: true
show-sql: true
liquibase:
enabled: true
# change-log: classpath:/db/changelog/db.changelog-master-test-h2.yaml
url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
default-schema: PUBLIC
spring.liquibase.change-log: classpath:/db/changelog/db.changelog-master-test-h2.yaml
答案 0 :(得分:-1)
如果您使用的是yaml中的属性,则需要添加双引号:
spring:
liquibase:
change-log: "classpath:/db/changelog/db.changelog-master-test-h2.yaml"
spring:
liquibase:
changeLog: "classpath:/db/changelog/db.changelog-master-test-h2.yaml"