我有一个带有2个属性文件的Spring Boot服务器:application-local.properties
和application-test.properties
在每个文件中,我都有用于开发机和测试的配置。像这样启动它:
-Dspring.profiles.active=local
但是在新的spring boot项目中,我使用.yaml
配置文件。而且我不知道如何将profiles
与.yaml
一起使用。我尝试阅读文档,但一无所知。您能一步一步解释什么吗?
我需要两个文件吗?
application-local.yaml
和application-test.yaml
还是我需要全部写入一个application.yaml
文件中?如果在一个文件中,如何分隔配置?这是我的配置:
server:
path: ***
port: ***
cxf:
path: ***
spring.datasource:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: oracle.jdbc.OracleDriver
url: ***
username: ***
password: ***
hikari:
minimumIdle: 5
maximumPoolSize: 20
idleTimeout: 30000
poolName: SpringBootJPAHikariCP
maxLifetime: 2000000
connectionTimeout: 30000
connection-test-query: SELECT 1 FROM DUAL
spring.jpa:
show-sql: false
database-platform: org.hibernate.dialect.Oracle10gDialect
properties.hibernate.jdbc.batch_size: 30
properties.hibernate.cache.use_second_level_cache: false
hibernate:
ddl-auto: validate
spring.cache:
ehcache:
config: classpath:ehcache.xml
#app configs
my:
messages-max-count: 5
messages-delay: 100
schedulers-charge-delay: 100
client:
first-server-address: ***
second-server-address: ***
last-server-address: ***
enabled-client: FirstClient
我要创建测试配置文件并更改数据库url(或更改为postgreSql),更改maximumPoolSize
属性
答案 0 :(得分:3)
application.yaml
并在那里定义所有默认属性。application-local.yaml
并覆盖local
配置文件所需的属性。application-test.yaml
并覆盖test
配置文件所需的属性。spring.profiles.active
设置为系统属性(对于-D
使用java
或在application.yaml
内定义它来设置。{li>
当您使用{PROFILE}
运行应用程序时,Spring将在application-{PROFILE}.yaml
之后解析application.yaml
。
答案 1 :(得分:0)
我的理解是yaml
的支持与Spring中properties
的支持级别不同。
您可以使用一个带有---
的yaml标记并在每个部分中设置spring.profiles
属性来创建一个文件并将其分成多个配置文件。有关更多信息,请参见The Documentation。
答案 2 :(得分:0)
是的,即使是单个文件,您也可以创建多个配置文件 配置文件用3个DASH( --- )
分隔logging:
level:
.: error
org.springframework: ERROR
spring:
profiles:
active: "dev"
main:
banner-mode: "off"
server:
port: 8085
---
spring:
profiles: dev
---
spring:
profiles: prod