web-dev-qa-db-ja.com

Webappファイル編成規則(開発構造)

私が開発しているWebアプリケーションの場合は、慣例を尊重していると思うので、通常は次のファイル構成を使用します。

src
|-- main
    |-- resources
    |   |-- *.properties
    |   |-- *.xml
    |   |-- spring
    |       |-- applicationContext.xml (main application context config file)
    |-- webapp
        |-- WEB-INF
            |-- spring
            |   |-- spring-mvc.xml (web application context config file, delegated to manage only the web part)
            |   |-- spring-security-http.xml (web security config)
            |-- static
            |   |-- *.css
            |   |-- *.js
            |-- views
            |   |-- *.jsp
            |-- web.xml (deployment configuration)

私が試したいのは、次の構造に従ってファイルを整理することです。

src
|-- main
    |-- resources
    |   |-- *.properties
    |   |-- *.xml
    |   |-- web.xml
    |   |-- spring
    |       |-- applicationContext.xml
    |       |-- spring-mvc.xml
    |       |-- spring-security-http.xml
    |-- webapp
        |-- WEB-INF
            |-- static
            |   |-- *.css
            |   |-- *.js
            |-- views
                |-- *.jsp

もちろん、webappをパッケージ化すると、ファイルは必要な場所(WEB-INFフォルダー内のweb.xmlファイルなど)に再配置されます。上記のようにwebappsを再編成する理由は、すべての* .xml構成ファイルを同じ場所に置く方が、ここにいくつかを置くよりも便利なためです。私の最初の構造を壊すことはあなたの意見では悪い考えですか?はいの場合、なぜですか?すべてのWeb構成ファイルをWEB-INFフォルダー内に配置することがなぜそれほど重要なのですか?

PS:技術的には、webappのクラスパス内のすべてのファイルを適切にリンクする方法を知っています。問題は、慣習と、個人的/専門的な経験からのフィードバックについてです。

16
sp00m

Java Webプロジェクトは、Eclipse、NetBeans、IntelliJ IDEAなどの一般的なIDEであり、典型的なJava Webアプリケーションの構造を確認できます。

また、開発構造とパッケージ構造には違いがあります。
アプリの開発中は、好きな構造をほとんど使用できます。ただし、パッケージ化する必要がありますJava特定のルールに従ってEE Webアプリケーション。

詳細については、公式のJava EEチュートリアルを参照してください。

また、Java 2 Platform、Enterprise Editionを使用して開発されたアプリケーションを構造化するための推奨される規則(日付はありますが、役立つ場合があります)もあります):
Javaブループリントガイドライン。エンタープライズアプリケーションのプロジェクト規約

そして、上記の例Java BluePrints: Web Applications: Recommended Directory Structure


更新

これは、Springを使用したJava Webアプリケーションプロジェクトの1つからの例です。たとえば、特別に作成されたspringWEB-INF内のフォルダーと、springフォルダー内に、アプリを適切に整理するためにさらにフォルダーを作成しました。ここでも、可能なバリアントの1つ、つまり個人の好みの問題.

Spring project structure example

16
informatik01

Web.xmlはWEB-INFディレクトリにある必要があります。アプリサーバーが検索する唯一の場所です。それ以外は、Spring xmlファイルをリソースに含めることができます(最終的にはクラスパスに含まれます)。

4
Andres Olarte