web-dev-qa-db-ja.com

Spring Boot + .yamlでプロファイルを作成するにはどうすればよいですか?

2つのプロパティファイルapplication-local.propertiesおよびapplication-test.propertiesを備えたSpringブートサーバー

各ファイルには、開発マシンとテストの構成があります。次のように開始します。

-Dspring.profiles.active=local

しかし、新しい春のブートプロジェクトでは、.yaml構成ファイルを使用します。そして、.yamlprofilesを使用する方法がわかりません。ドキュメントを読みましたが、何も理解できませんでした。何をすべきか、段階的に説明できますか?

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プロパティを変更したい

4
ip696
  1. application.yamlを作成し、そこにすべてのデフォルトプロパティを定義します。
  2. application-local.yamlを作成し、localプロファイルに必要なプロパティをオーバーライドします。
  3. application-test.yamlを作成し、testプロファイルに必要なプロパティをオーバーライドします。
  4. spring.profiles.activeを設定するには、システムプロパティ(Javaの場合は-D)として渡すか、application.yaml内で定義します。

{PROFILE}を使用してアプリを実行している場合、Springはapplication-{PROFILE}.yamlの後にapplication.yamlを解析します。

6
Andrew Tobilko

はい、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
0
Ramesh

私の理解では、yamlサポートは、Springのpropertiesと同じレベルでは実装されていません。 ---を使用したyaml表記と各セクションのspring.profilesプロパティの設定を使用して、単一のファイルを作成し、それを複数のプロファイルに分離できます。詳細は The Documentation を参照してください。

0
Nestor Sokil