2つのプロパティファイルapplication-local.properties
およびapplication-test.properties
を備えたSpringブートサーバー
各ファイルには、開発マシンとテストの構成があります。次のように開始します。
-Dspring.profiles.active=local
しかし、新しい春のブートプロジェクトでは、.yaml
構成ファイルを使用します。そして、.yaml
でprofiles
を使用する方法がわかりません。ドキュメントを読みましたが、何も理解できませんでした。何をすべきか、段階的に説明できますか?
2つのファイルが必要ですか?
application-local.yaml
およびapplication-test.yaml
または、すべてを1つのapplication.yaml
ファイルに書き込む必要がありますか? 1つのファイルで構成を分離するにはどうすればよいですか?それは私の設定です:
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
プロパティを変更したい
application.yaml
を作成し、そこにすべてのデフォルトプロパティを定義します。application-local.yaml
を作成し、local
プロファイルに必要なプロパティをオーバーライドします。application-test.yaml
を作成し、test
プロファイルに必要なプロパティをオーバーライドします。spring.profiles.active
を設定するには、システムプロパティ(Java
の場合は-D
)として渡すか、application.yaml
内で定義します。{PROFILE}
を使用してアプリを実行している場合、Springはapplication-{PROFILE}.yaml
の後にapplication.yaml
を解析します。
はい、1つのファイルでも複数のプロファイルを作成できます。プロファイルは3つのダッシュで区切られます(---)
logging:
level:
.: error
org.springframework: ERROR
spring:
profiles:
active: "dev"
main:
banner-mode: "off"
server:
port: 8085
---
spring:
profiles: dev
---
spring:
profiles: prod
私の理解では、yaml
サポートは、Springのproperties
と同じレベルでは実装されていません。 ---
を使用したyaml表記と各セクションのspring.profiles
プロパティの設定を使用して、単一のファイルを作成し、それを複数のプロファイルに分離できます。詳細は The Documentation を参照してください。