設定用のXMLファイルと比較したアノテーションの有用性

Javaでは、アノテーションを使用してXMLファイルを使用するのではなく、アプリケーションを構成することをお勧めしますか?アノテーションを使用すると、Javaソースファイルを変更する必要があり、Javaファイルで定数を宣言し、それらの定数を使用するのと同じくらい良いので、私はもっと懐疑的です。XMLファイルを使用して設定を行うときは、 Javaソースファイルから離れて別のXMLファイルに設定を保存すると、このアプローチはもっとうまく聞こえます。また、設定を変更する必要がある場合、アノテーションのjavaファイルを検索するのではなく、変更するXMLファイルを知っています。また、コードを再度コンパイルせずにEAR内のXMLファイルを更新することもできますが、注釈を変更するとコードを再度コンパイルする必要があります。

誰でも、XMLファイルではなくアノテーションを使用する必要がありますか?

0

5 答え

どちらが使用されるかは、構成内容、構成の使用方法、プロジェクト/文化的な規則などによって異なる場合があります。IDEのサポートがあれば、より便利で信頼性の高いものになります。

個人的には、私はXMLとアノテーションの両方を使用していますが、特に大規模なプロジェクトでは、多くのタスクでXML構成を使用する傾向があります。たとえば、Springの場合、私はXML設定が好きです。よりローカライズされた設定自体、設定チェンジセット、環境固有の変更(テスト、サーバベースなど)の管理が簡単です。

他の構成の場合、注釈はしばしばより適切で便利です。ほとんどまたはまったくドメインクラスのカスタマイズをしていないクイックプロジェクトでは、Hibernateアノテーションがより便利かもしれません。

最終的には、純粋に技術的なものではなく、好みと便宜の問題です。 (XMLと注釈が異なる機能をサポートしている場合を除き、より完全な機能を提供するものもあります。)

1
追加された

IDEが私の設定を検証するのに役立つので、私は注釈を好む。 xmlファイルに保存されている設定は、実行時に検証することができません(私はほとんどが春と注入について考えています)

また、小さなプロジェクト以上のものであれば、大規模なxml-configを維持するのは難しいと感じています。

1
追加された

注釈を扱うときは、あなたのもの(Javaコード)を構成するために1つの場所だけを扱わなければなりません。 XMLで設定する場合、プログラマはXMLで新しいプロパティやクラスを設定することを何度も忘れてしまい、エラーを修正して再起動しなければならないため、時間が浪費されます。

0
追加された
注釈でも同じことが起こり、再コンパイルが行われます。
追加された 著者 Dave Newton,

私はあなたが設定しているものに非常に依存していると言います。

コンフィギュレーションを展開後に変更する必要がある場合は、ほとんどの場合、XML(またはその他のテキストベースの形式)を使用することをお勧めします。これには、Hibernateサーバ設定、Tomcat/Jetty設定、Log4j設定などが含まれます。主な利点は柔軟性です。

デプロイ後に構成を変更する必要がない場合は、注釈を使用する構成が適しています。構成ファイルが多すぎると、ソフトウェアも複雑になるため、最小限に抑えることをお勧めします。良い例は、アノテーションベースの設定です:Hibernate Beanマッピング設定、Spring依存性注入、Guiceなど(いくつかのオプションは両方ありますが、ここではアノテーションが必要です)。利点は、管理性が向上し、コンパイル時にエラーをチェックすることです(これはもちろんAPIに依存します)。

0
追加された

個人的には、新しいシステムを理解しようとしたときに、アノテーションをコードとともに使用すると、それを理解しやすくすることができます。設定ファイル内のクラスの参照のための狩りはちょっと面倒です。

0
追加された