YAML と Java プロパティによる設定管理
このコンバーターの機能
YAML と Java の .properties は、同じ設定を書くための 2 つの方法です。properties ファイルは 1 行につき 1 つのフラットなキー=値のペアを保存し、ドットで階層を表現します(server.servlet.context-path=/api)。YAML は同じ階層を実際のインデントとネストで表します。このツールはどちらの形式も読み取り、貼り付けられたのがどちらかを判別して、もう一方の形式に書き換えます。ドット区切りのキーをネストしたツリーに展開したり、ツリーをドット区切りのパスに平坦化したりします。
変換は双方向で、固定テンプレートではなく検出した構造に基づいて行われるため、ファイルを往復させても(YAML → Properties → YAML)同等の結果を取り戻せます。
使いどころ
最も多いのは、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(name[0]、name[1])としても出力できます。調整可能なインデントと文字列の引用符付け(自動・常に・しない)により、チームのスタイルガイドに合わせられます。型の自動検出により、真偽値・整数・null 値が引用符で囲まれるのを防ぎます。