8

Java Webアプリでサーブレットを使用してアクセスする必要のあるテキスト、xml、およびその他のファイル(つまりリソー​​ス)がたくさんあります。たとえば、xmlファイルがあり、その一部はユーザークエリによってサーブレットとともに返されます。Tomcatを使用しています。これらのファイルを保存し、Javaコードからアクセスするためのベストプラクティスは何ですか?1)デフォルトのフォルダはどこに置くべきですか?WebアーカイブまたはJarの1つに入れる必要がありますか?2)Javaコードからファイルにアクセスする方法は?どのような環境でも機能するように、パスを設定するにはどうすればよいですか?PSこのトピックに関連するいくつかの投稿を読みましたが、そのほとんどは、リソースをjarに格納し、java.lang.Class.getResourceAsStream(String)を使用してそれらにアクセスすることを推奨しています。クラスとデータを分離する必要があるため、奇妙に思えます。

4

1 に答える 1

10

クラスローダーを使用して静的リソースをロードしても問題ありません。これは、たとえば国際化されたプロパティ ファイルをロードするために ResourceBundle が行うことです。

WEB-INF/classesそれらをクラスファイルと一緒に入れるか、 内の jar に入れてWEB-INF/lib、既に読んだ回答で示されているように ClassLoader でロードします。

ただし、これらのファイルをプロジェクト内の Java ソース ファイルとは別のディレクトリに配置することは禁止されていません。ビルド プロセスでは、それらを実行時に適切な場所に配置する必要があります。Maven と Gradle の規則では、ソース ファイルを の下に置きsrc/main/java、リソース ファイルを の下に置きますsrc/main/resources

于 2012-12-22T20:35:27.597 に答える