17 votes

Convention d'organisation des fichiers de la webapp (structure de développement)

Pour les webapps que je développe, j'utilise généralement l'organisation de fichiers suivante, car je pense qu'elle respecte la convention :

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)

Ce que j'aimerais essayer, c'est d'organiser mes fichiers selon la structure suivante :

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

Bien sûr, lors de l'empaquetage de la webapp, les fichiers seront déplacés là où ils doivent l'être (par exemple, le fichier web.xml dans le dossier WEB-INF). La raison pour laquelle je voudrais réorganiser mes webapps comme ci-dessus, est que je trouve plus pratique d'avoir tous les fichiers de configuration *.xml au même endroit, plutôt que d'en avoir ici et là. Est-ce une mauvaise idée à votre avis de casser ma structure initiale ? Si oui, pourquoi ? Pourquoi est-il si important d'avoir tous les fichiers de configuration Web dans le dossier WEB-INF ?

PS : techniquement, je sais comment bien lier tous les fichiers dans le classpath de la webapp. La question porte davantage sur les conventions et les retours d'expériences personnelles/professionnelles.

18voto

informatik01 Points 5059

Vous pouvez créer le projet Web Java dans un IDE populaire, comme Eclipse, NetBeans, IntelliJ IDEA, pour voir la structure typique d'une application Web Java.

Et il y a une différence entre le structure de développement et structure d'emballage .
Lors du développement d'une application, vous pouvez utiliser la structure que vous souhaitez. Mais vous doit être emballé Application web Java EE selon les règles spécifiques.

Consultez les didacticiels officiels de Java EE pour plus de détails :

Vous trouverez également ici les conventions recommandées pour structurer les applications développées à l'aide de la plate-forme Java 2, Enterprise Edition (bien que datées mais pouvant être utiles) :
Directives pour les Blueprints Java. Conventions de projet pour les applications d'entreprise

Et voici un exemple tiré des BluePrints Java ci-dessus : Web Applications: Recommended Directory Structure


UPDATE

Voici l'exemple d'un de mes projets d'application Web Java avec Spring. Par exemple, j'ai stocké tous les fichiers de configuration relatifs à Spring dans le fichier spécialement créé printemps dossier à l'intérieur WEB-INF . Et dans le printemps dossier, j'ai créé d'autres dossiers pour mieux organiser mon application. Encore une fois, il ne s'agit que d'une des variantes possibles, c'est-à-dire une question de préférences personnelles .

Spring project structure example

4voto

Andres Olarte Points 2451

Le web.xml doit se trouver dans le répertoire WEB-INF. C'est le seul endroit où les serveurs d'applications le chercheront. A part cela, les fichiers xml de Spring peuvent se trouver dans les ressources (qui se retrouveront dans le classpath).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X