26

Java での定数ファイルとプロパティ ファイルの使用について、少し混乱しています。

Constants.javaをいつ使用し、いつ.propertiesファイルを使用するかを決定する方法は?

4

8 に答える 8

33

ユーザー/デプロイヤー/テスター/テストで定数を変更したくない場合は、Javaコードでハードワイヤード定数を使用してください。

これを可能にしたい場合は、プロパティファイルを使用してください。

重要なのは、アプリケーションのソースコードのハードワイヤード定数を変更するには、ソースコードの編集、再構築、および再デプロイが必要になるということです。対照的に、プロパティファイルの変更は、メモ帳を起動するのと同じくらい簡単な場合があります。


あなたはコメントしました:

プロパティファイルの変更は簡単ですが、定数ファイルの変更にはアプリケーションの再構築が必要です。それで、私たちは常にプロパティファイルを使用することを好むべきではありませんか?

いいえ。常にではありません。 たとえば、アプリケーションをエンドユーザーに配布してマシンにインストールし、ユーザーに変更させたくない定数がある場合、それらをプロパティファイルに配置することはお勧めできません。

これを「常にXを好む」推奨に減らすことは不可能です。自分のアプリケーション要件を理解し、自分で決める必要があります。

于 2012-05-29T15:06:16.727 に答える
5

私のチェックリスト

プロパティ ファイル:

環境などごとに構成可能ですか。

メッセージ、ラベルなど

特定の状況に適用されます (ルールなどの状態のリスト)。キーと値のペア。開発者以外の人物、つまりアナリスト、ビジネス ユーザーなどによって変更される可能性があります。

絶え間ない:

定数です。構成できません。主に最適化と再利用のため。鍵が飛散しないようにする。

YES = "yes" のような定数の場合。実際には重要な値ではありません。キャッシュなどのキー

アプリケーション内の異なる場所からでも、検索と設定で同じキーが使用されるようにするための定数。 EXAMPLE xyz.put(KeyConstants.SOME_KEY, "somevalue"); xyz.get(KeyConstants.SOME_KEY) は異なるクラスからのもので、xyz は共有またはシングルトンです。

于 2012-05-29T20:20:30.867 に答える
1
  • 定数-値を変更するたびにアプリケーションを再コンパイルしてもかまわない場合。ここでは皮肉なことです。定数と呼ばれているのに、なぜ何かを変更するのでしょうか:)

  • プロパティファイル-値を変更するだけで、アプリケーションを再起動して変更を取得するという贅沢が必要な場合。

于 2012-05-29T15:06:25.653 に答える
1

一般に、定数クラスのすべては「ハードコードされている」と見なされます。つまり、変更を加えるには再コンパイルする必要があります。

.properties構成など、変更を加えるためだけに再コンパイルを強制する必要がない場合は、ファイルを使用します。このようにして、プロパティファイルを変更してアプリケーションを再起動するだけです。

于 2012-05-29T15:07:03.833 に答える
1

通常、デプロイメントごとに、または時間の経過とともに変化するパラメーターを指定する場合は、プロパティファイルを使用します。

パラメータが動的ではなく、外部要因に応じて変更されることが想定されていない場合は、定数を使用します。値を変更するたびに、クラスを再コンパイルする必要があります。

于 2012-05-29T15:07:34.280 に答える
1

考慮すべきさまざまな側面があります。最も重要なのは、

  • プロパティ ファイルを編集して、アプリケーションを再コンパイルせずに使用できます。
  • プロパティ ファイルにはコードが含まれていないため、Java の知識がなくても誰でも変更できます。

これらの側面により、プロパティ ファイルは構成の保存に非常に役立ちます。

一方、定数クラスはコンパイルする必要がありますが、これらの定数をあまり頻繁に変更しない場合は「より安全」です。

于 2012-05-29T15:07:47.920 に答える
1

定数はコンパイル時に修正されます。したがって、値の変化が予測できない場合は、定数を使用することをお勧めします。

于 2012-05-29T15:11:14.157 に答える
0

プロパティには、外部化できるという利点があります。開発用に 1 つのプロパティ ファイル、テスト用に別のプロパティ ファイル、本番用に別のプロパティ ファイルを使用できます。ただし、多くの場合、ほとんど変更されないプロパティは、ソフトウェアの動作の内部にあり、プロパティ ファイルに入れられて管理が難しくなります。

OTOH 定数はコンパイルされるため、コンパイル時にエラーが検出されます。

したがって、答えは、場合によって異なります。プロパティの値が本当に外部化したい構成変更である場合は、プロパティ ファイルを使用します。それ以外の場合は、それらを Java 定数にします。ただし、両方を使用することになる場合があります。

于 2012-05-29T15:12:34.680 に答える