YAML と Java プロパティによる設定管理
このコンバーターの機能
YAML と Java の .properties は、同じ設定を書くための 2 つの方法です。properties ファイルは 1 行につき 1 つのフラットなキー=値のペアを保存し、ドットで階層を表現します(server.servlet.context-path=/api)。YAML は同じ階層を実際のインデントとネストで表します。このツールはどちらの形式も読み取り、貼り付けられたのがどちらかを判別して、もう一方の形式に書き換えます。ドット区切りのキーをネストしたツリーに展開したり、ツリーをドット区切りのパスに平坦化したりします。
変換は双方向で、固定テンプレートではなく検出した構造に基づいて行われるため、ファイルを往復させても(YAML → Properties → YAML)同じキーと値に戻せます。リストをリストのまま保つには、「配列形式」で「インデックス ([0])」を選んでください。既定のカンマ区切りでは、リストは1つのテキスト値として戻り、# の行は先頭に移ります。
使いどころ
最も多いのは、application.properties と application.yml の間を移行する Spring Boot プロジェクトです。多くのチームは properties から始め、設定が深くなってドット区切りのキーが読みづらくなった時点で YAML に切り替えます。逆方向の変換も、ツールやデプロイパイプラインがフラットな properties を求める場合に同じくらい役立ちます。
2 つの設定をすばやく差分比較したり、ドキュメントの断片をプロジェクトが実際に使う形式に変換したり、コミット前にインデントや配列スタイルを整えたりするのにも便利です。
例:サーバーブロック
properties の行 server.port=8080 と server.servlet.context-path=/api は、server が port: 8080 と、context-path: /api を保持する servlet キーを含むネストされた YAML ブロックになります。これを元に戻すと、ドット区切りのキーがそのまま再現されます。8080 のような数値は引用符が付かないままなので、文字列ではなく整数型を保ちます。
形式に関する注意点とエッジケース
「コメント保持」がオン(既定)のとき、# で始まる行は結果の先頭に移されます。行末のコメントは保持されず、コメントが説明していたキーの隣にも残りません。YAMLからPropertiesでは、リストは1つのカンマ区切りの値(tools=a,b)またはインデックス付きの行(tools[0]=a、tools[1]=b)になり、PropertiesからYAMLでは、インデックス付きの行がYAMLのダッシュ形式のリストになります。インデントと文字列の引用符(自動、常に、なし)を調整して、チームのスタイルガイドに合わせられます。型の自動検出により、真偽値・整数・null が引用符で囲まれるのを防ぎます。