这是我的application.yml文件:
spring:
freemarker:
template-loader-path: classpath:/templates
datasource:
url: jdbc:postgresql://localhost:5432/myapp
username: postgres
password: password
driver-class-name: org.postgresql.Driver
jpa:
show-sql: true
properties:
hibernate:
enable_lazy_load_no_trans: false
jdbc:
lob:
non_contextual_creation: true
dialect: org.hibernate.dialect.PostgreSQLDialect
hibernate:
ddl-auto: create-drop
---
spring:
profiles:
active: development
---
spring:
profiles: staging
jpa:
show-sql: true
hibernate:
ddl-auto: update
logging:
level:
root: DEBUG
---
spring:
profiles: production
jpa:
show-sql: false
hibernate:
ddl-auto: update
我使用以下方式运行应用程序:
java -jar application.jar -Dspring.profiles.active=staging
在日志中,我可以看到Spring Boot输出了以下内容:激活的配置文件为: development 那么,为什么即使我在命令行参数中明确设置了staging,激活的配置文件仍然没有被设置为它呢?
spring.profiles.active
属性遵循与其他属性相同的排序规则:最高的 PropertySource 获胜。对我来说似乎hsqldb
优先级最高。@Sam - Ryuzaki L