私はSpringで国際化を使用しています。プロパティファイルはクラスパス上にある必要があります。私はクラスパス上にある必要があるいくつかのXMLファイルも持っています。それらのリソースをサブディレクトリの "src"の中に含めるだけで、クラスパスにビルドさせるか、起動時に別のフォルダをクラスパスに追加する方が良いでしょうか?私はAntを使用していますが、見た目からはこれはMavenが取ったアプローチです(srcまたはtestのすべて)。私は最も広く受け入れられている業界標準またはより良い選択肢を探しています。ありがとう!Java Webアプリケーションでクラスパス上のリソースを含む最も一般的な標準は何ですか?
答えて
はちょうどそれらをクラスパス
に構築でき、サブディレクトリにある「SRC」の内部でこれらのリソースを含める、とすることが許容される問題のリソースの唯一の目的に依存します。このアプローチでは、このようなリソースファイルのマイナー編集は、完全な再構築、再デプロイ、再起動が必要になります。
web.xml
とapplication.xml
のようなワンタイムリードの起動ファイルやアプリケーション全体の設定ファイルには必ずしも影響はないかもしれません。これは通常、完全な再構築/再配布/再コンパイルが必要なJavaソースコードの変更に影響を与えますとにかくなど。
i18nのプロパティファイルや環境固有の設定ファイル(serveradminや顧客のような非開発者が管理する/実行することができる)のようなランタイムファイルの場合は、それをWebアプリケーション内にパッケージ化することは有用ではありません。これには、編集後にWebアプリケーションを再構築する方法についての知識が必要です。むしろ、ウェブアプリケーションを再起動するだけで構成の変更を反映する必要があるように、外部化することを好むでしょう。例えば、ResourceBundle
のように、自動でリロードされます。
私は通常、このようなファイルをservletcontainerに沿って固定パスに入れ、そのパスをservletcontainerのランタイムクラスパスに追加します。例えばTomcatの場合、プロパティは/conf/catalina.properties
に設定可能です。例えば。
shared.loader=/var/webapp
このフォルダのすべては、servletcontainer(およびwebappの)実行時クラスパスで使用されます。
WEB-INF/classesディレクトリに置いたものは、自動的にCLASSPATHに格納されます。
私は通常、.javaファイルを/src
と/test
というディレクトリに入れます。私が他の場所に置いたリソースは、WEB-INF/classesで終わらなければなりません。これは、私のIDE(IntelliJ)またはAntで、WARファイルが作成されたときにそこに配置されます。
私は、Springの例に従い、リソースを配置することをお勧めします。
たとえば、Velocityをテンプレートエンジンとして使用すると、Springの設定では/ WEB-INF/vm_viewsの下に置くことができます。
プロパティはWEB-INF/classesに入れられます。
例については、Springのドキュメントを参照してください。
- 1. トラバーサブルをリストで圧縮する最も標準的な/一般的な方法は何ですか?
- 2. 最も一般的なCSSのプラクティスは何ですか?
- 3. 最も一般的なCSSの問題は何ですか?
- 4. JavaでBigDecimalまたはDoubleを好む最も一般的なシナリオは何ですか?
- 5. Java Webアプリケーションのホスティングに最適なものは何ですか?
- 6. 一般的なJava Web App
- 7. 春のプロジェクトでAOPの最も一般的な用途は何ですか
- 8. Ruby-on-Rails Webアプリケーションのフロントエンド開発の一般的なプラクティスは何ですか?
- 9. 最も一般的なタプル
- 10. 一般的なWebブラウザのアドレスバーの動作は何ですか?
- 11. MySQLで最も一般的なリスト
- 12. レールアプリケーションを展開する最も一般的な方法は何ですか
- 13. java業界標準のWebフレームワークは何ですか
- 14. Forthソースコードファイルの最も一般的なファイル拡張子は何ですか?
- 15. 空のパスを含むJSON-patch 'remove' - 正式な標準的な結果は何ですか?
- 16. さまざまなタイプのRubyアプリケーションで最も一般的に使用されるユニットテストフレームワークは何ですか?
- 17. AutoHotKeyでforループを書くための最も標準的な方法は何ですか?
- 18. サイズkの最も一般的なサブセット
- 19. 最も一般的な複数のプログラム
- 20. where句の最も一般的な値
- 21. 一般的なコーディング標準用のReSharper C++のdotSettingsファイル
- 22. 最も一般的な時間のクエリですか?
- 23. MVCでは、Viewの標準的な責任は何ですか?
- 24. SQL最も一般的な値ではない正確な
- 25. Java配列の最も一般的な文字列リスト
- 26. 最も一般的な方法は、私はC++で別の
- 27. 一般的な参照インターフェイスを持つ標準ライブラリはありますか?
- 28. Pythonの関数からの出力を無視する最も標準的な方法は何ですか?
- 29. 最も一般的な粒度
- 30. 、最も一般的な評価
オープンソースアプリケーションの場合(私が現在ではありません)、誰も同じサーブレットコンテナを使用していると想定していませんか? –
私はこの質問のポイントを取得しません。この質問の背後にある根拠/推論は何ですか?私はそれがTomcatほどでしかないことを暗示するつもりはありませんでした。 – BalusC
私は、ほとんどの人がWARを作業ディレクトリに投げ込むだけでアプリケーションを起動して実行することを好み、Tomcatのように解凍して実行することを好みました。そのため、実行時に追加のクラスパスを設定する必要があるのが適切かどうかという疑問を尋ねました。この場合、アプリケーションを実行しているすべての人に、この新しいパスを設定する必要があることを伝える必要があります。 –