IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

Votre avis sur projet JEE via Maven


Sujet :

Développement Web en Java

  1. #1
    Invité
    Invité(e)
    Par défaut Votre avis sur projet JEE via Maven
    Bonjour,

    Je souhaiterais avoir votre avis sur la structure d'un projet que j'ai réalisé et son utilité (en gros, cela marche quand je teste mais est-ce une bonne structure pour un projet WEB).

    Je n'ai pas mis en pièce jointe le répertoire du projet mais celui des modules sachant que le module java (jar) est une dépendance du module Web.

    Alors, j'utilise Spring avec JNDI et Hibernate au niveau du module Java.

    Pour la partie web, j'utilise aussi Spring combiné avec Struts 2 (via le plugin spring-struts2) pour la gestion des actions. A cela, j'ai ajouté le système de tiles pour la structure des pages JSP ainsi que les tags Struts 2.
    Les deux fichiers de contexte (module java et module web) sont liés et donc les actions déclarées dans le fichier de contexte du module web vont appeler les services mis en paramètres dans le fichier de contexte du module Java et ces derniers vont permettre d'interagir avec la base de données.
    Devrais-je également séparer la réalisation des opérations via le service de celles faites sur la base de données et donc créer des DAO que je passe en paramètre de la déclaration du service dans le fichier de contexte du module java (un DAO lié à chaque table et rassemblant des méthodes de récupération sur cette table) ?

    Voici la structure des modules java et web en pièces jointes.

    Nom : modWar.jpg
Affichages : 104
Taille : 57,2 Ko
    Nom : modJar..jpg
Affichages : 138
Taille : 27,0 Ko

    Je vous remercie d'avance pour votre aide.
    Dernière modification par Laurent.B ; 02/04/2013 à 11h27. Motif: Mise en forme

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Bonjour

    A première vue, cela me semble être l'arborescence classique pour des projets de ce type, la séparation des classes me semble aussi correcte et cohérente.

    Pour moi c'est tout bon, félicitations

    A+
    K

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci pour votre réponse. Et au niveau des technologies utilisées, vous en pensez quoi ?

  4. #4
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Bonjour

    Maven, Spring, Hibernate, Struts2, Tiles forment une bonne combinaison. Je suis fan de Grails personnellement, mais ces frameworks me plaisent bien.

    Je ne vois pas l'intérêt de JNDI par contre, on peut facilement s'en passer, mais ça apporte une certaine sophistication.

    L'idée des webservices est bonne car cela permettra de séparer les couches si besoin, et je conseille XFire/CXF pour le déploiement ainsi que SoapUI pour les tests. Peut-être que de nouvelles alternatives à XFire/CXF existent car je n'ai pas déployé de web services depuis longtemps, mais j'apprécie cette librairie car elle permet de déployer des web services directement à partir de classes java avec des annotations.

    La séparation des classes DAO dans un autre sous-projet n'est selon moi pas forcément nécessaire, mais tout dépend de la taille du projet et du nombre d'intervenants. Il est plus facile de suivre les releases quand on a plusieurs modules, et normalement, les DAO ne doivent pas trop bouger, donc en général ils restent dans un projet à part qui est rarement rebuildé.

    As-tu pensé à utiliser un logiciel de gestion de versions comme SVN ?

    A+
    K

  5. #5
    Invité
    Invité(e)
    Par défaut
    Merci encore une fois d'avoir répondu ^^.

    SVN n'est-il pas un logiciel utilisé pour centraliser les modifications lorsque l'on est plusieurs personnes à bosser sur un même projet ? Du moins, au travail, je me connecte via un plugin Eclipse à un serveur, je fais une synchronisation et je télécharge ou j'upload les ou mes modifications réalisées. Après, le chef de projet s'en sert aussi pour lancer la génération du war pour le déploiement.

    En fait, j'ai créé cette architecture pour m'amuser et découvrir un peu comment sont structurés les nouveaux projets que je crée au travail via une commande maven qui va aller se servir d'une architecture de projet propre à la société (le maven repository est en interne). En gros, j'ai essayé de reproduire le même genre d'architecture en y allant pas à pas, par technologie. Après, je dois avouer que j'ai presque envie de me créer une petite application web d'entrainement sur les technologies via un petit dispositif de déploiement (serveur) QNAP que j'avais acheté il y a deux ans, dispositif sur lequel j'avais installé tomcat/mysql et vers lequel je redirigeais les connexions entrantes de la livebox. Mais bon, je ne suis pas un expert et étudiant dans une formation où au final j'apprends tout par la pratique au travail ou à la maison avec les tutoriels, les forums et mon meilleur ami, le site : "google" (super formation ).

    Pour le JNDI, je voulais aussi voir comment passer par SPRING via le bean sessionFactory et l'utilisation de l'héritage sur la classe HibernateDaoSupport.

    Je vais me renseigner sur CXF même si je connais pas du tout (du nouveau à apprendre ^^). Je suis preneur pour une petite explication.

    Pis pour les DAO, je voulais dire plutôt créer un répertoire DAO et un sous répertoire DAOImpl pour créer une classe d'interaction avec la base de donnée pour chaque table.

    Je te remercie d'avance pour la prise en considération de ce message et ta future réponse ^^.
    Dernière modification par Invité ; 01/04/2013 à 11h21.

  6. #6
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Bonjour,

    Je comprend ta démarche, et je trouve que tu t'es vraiment bien débrouillé pour assembler tout ça en auto-formation et monter une appli comme celle-là

    Oui SVN (Apache Subversion) est un logiciel de gestion de versions, probablement celui qui est déjà utilisé dans ta boite selon ce que tu décris. Je te conseille de créer une arborescence pour ton projet afin de sauvegarder les évolutions de ton projet.

    Apache CXF est une librairie qui te permet d'exposer des webservices uniquement en te focalisant sur le code Java. Regarde cette doc pour plus de détails

    Ton idée de créer un package pour les implémentations de DAO est bonne, mais en général ça ne sert pas à grand chose. Il est mieux de mettre les interfaces et les classes d'implémentations dans le même package selon moi, je trouve cela plus lisible de voir directement l'interface et l'implémentation l'une à côté de l'autre dans la liste.

    Personnellement, j'ai opté pour l'utilisation de Grails, qui est un outil vraiment très intéressant. Tu devras apprendre Groovy pour bien t'en servir, regarde [ame="http://www.youtube.com/watch?v=PXHxo43hn34"]cette vidéo (en plusieurs parties)[/ame], cela te donnera un aperçu des possibilités (d'ailleurs, sur ce compte youtube, tu trouveras pleins de vidéos intéressantes si tu veux t'auto-former !). C'est en anglais par contre, j'espère que ça ne te posera pas de problème.

    A+
    K

  7. #7
    Invité
    Invité(e)
    Par défaut
    Merci pour tes réponses. Je vais me pencher sur l'installation de SVN, CFX via la documentation que tu m'as mis et Grails ainsi que Groovy. Pour la vidéo, je vais faire de mon mieux, cela me permettra de m'entrainer aussi niveau compréhension orale.

    Je vais mettre le poste en résolu mais je risque de t'envoyer quelques messages privés ^^.

    Bonne journée et merci.

Discussions similaires

  1. Votre avis sur projet localisation indoors
    Par Aspic dans le forum Développement
    Réponses: 8
    Dernier message: 19/08/2011, 12h39
  2. Votre avis sur projet
    Par trinaxia dans le forum Modélisation
    Réponses: 1
    Dernier message: 19/06/2011, 21h35
  3. Quel est votre avis sur mon sujet de projet fin d'études ?
    Par makaphrodite dans le forum Dépannage et Assistance
    Réponses: 2
    Dernier message: 04/12/2006, 12h21
  4. Votre avis sur un projet
    Par Arcalys dans le forum Développement 2D, 3D et Jeux
    Réponses: 8
    Dernier message: 27/11/2006, 23h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo