Java での定数ファイルとプロパティ ファイルの使用について、少し混乱しています。
Constants.javaをいつ使用し、いつ.propertiesファイルを使用するかを決定する方法は?
Java での定数ファイルとプロパティ ファイルの使用について、少し混乱しています。
Constants.javaをいつ使用し、いつ.propertiesファイルを使用するかを決定する方法は?
ユーザー/デプロイヤー/テスター/テストで定数を変更したくない場合は、Javaコードでハードワイヤード定数を使用してください。
これを可能にしたい場合は、プロパティファイルを使用してください。
重要なのは、アプリケーションのソースコードのハードワイヤード定数を変更するには、ソースコードの編集、再構築、および再デプロイが必要になるということです。対照的に、プロパティファイルの変更は、メモ帳を起動するのと同じくらい簡単な場合があります。
あなたはコメントしました:
プロパティファイルの変更は簡単ですが、定数ファイルの変更にはアプリケーションの再構築が必要です。それで、私たちは常にプロパティファイルを使用することを好むべきではありませんか?
いいえ。常にではありません。 たとえば、アプリケーションをエンドユーザーに配布してマシンにインストールし、ユーザーに変更させたくない定数がある場合、それらをプロパティファイルに配置することはお勧めできません。
これを「常にXを好む」推奨に減らすことは不可能です。自分のアプリケーション要件を理解し、自分で決める必要があります。
私のチェックリスト
プロパティ ファイル:
環境などごとに構成可能ですか。
メッセージ、ラベルなど
特定の状況に適用されます (ルールなどの状態のリスト)。キーと値のペア。開発者以外の人物、つまりアナリスト、ビジネス ユーザーなどによって変更される可能性があります。
絶え間ない:
定数です。構成できません。主に最適化と再利用のため。鍵が飛散しないようにする。
YES = "yes" のような定数の場合。実際には重要な値ではありません。キャッシュなどのキー
アプリケーション内の異なる場所からでも、検索と設定で同じキーが使用されるようにするための定数。 EXAMPLE xyz.put(KeyConstants.SOME_KEY, "somevalue"); xyz.get(KeyConstants.SOME_KEY) は異なるクラスからのもので、xyz は共有またはシングルトンです。
定数-値を変更するたびにアプリケーションを再コンパイルしてもかまわない場合。ここでは皮肉なことです。定数と呼ばれているのに、なぜ何かを変更するのでしょうか:)
プロパティファイル-値を変更するだけで、アプリケーションを再起動して変更を取得するという贅沢が必要な場合。
一般に、定数クラスのすべては「ハードコードされている」と見なされます。つまり、変更を加えるには再コンパイルする必要があります。
.properties
構成など、変更を加えるためだけに再コンパイルを強制する必要がない場合は、ファイルを使用します。このようにして、プロパティファイルを変更してアプリケーションを再起動するだけです。
通常、デプロイメントごとに、または時間の経過とともに変化するパラメーターを指定する場合は、プロパティファイルを使用します。
パラメータが動的ではなく、外部要因に応じて変更されることが想定されていない場合は、定数を使用します。値を変更するたびに、クラスを再コンパイルする必要があります。
考慮すべきさまざまな側面があります。最も重要なのは、
これらの側面により、プロパティ ファイルは構成の保存に非常に役立ちます。
一方、定数クラスはコンパイルする必要がありますが、これらの定数をあまり頻繁に変更しない場合は「より安全」です。
定数はコンパイル時に修正されます。したがって、値の変化が予測できない場合は、定数を使用することをお勧めします。
プロパティには、外部化できるという利点があります。開発用に 1 つのプロパティ ファイル、テスト用に別のプロパティ ファイル、本番用に別のプロパティ ファイルを使用できます。ただし、多くの場合、ほとんど変更されないプロパティは、ソフトウェアの動作の内部にあり、プロパティ ファイルに入れられて管理が難しくなります。
OTOH 定数はコンパイルされるため、コンパイル時にエラーが検出されます。
したがって、答えは、場合によって異なります。プロパティの値が本当に外部化したい構成変更である場合は、プロパティ ファイルを使用します。それ以外の場合は、それらを Java 定数にします。ただし、両方を使用することになる場合があります。