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

Java Discussion :

[Débutant] Création d'une application Java type EE


Sujet :

Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 20
    Points : 25
    Points
    25
    Par défaut [Débutant] Création d'une application Java type EE
    Bonjour à tous,

    J'ai pour projet de développer une application java en couches type java EE.
    Il s'agira d'un application tournant sur un serveur et dotée d'un client leger, d'un client lourd et à terme d'une application mobile.
    Il s'agit d'un gros projet pour un débutant en java EE comme moi mais c'est un projet personnel qui n'est pas à but lucratif donc j'ai tout mon temps pour le développer. De plus je n'ai pas terminé mes études donc je profite du temps que j'ai pour me faire un reel apprentissage du java EE.

    J'ouvre donc cette discussion afin qu'elle suive toute l'évolution de mon projet car j'aurais beaucoup, mais alors beaucoup de questions à poser pendant le développement ...

    Je remercie d'avance les bonnes âmes qui m'aideront au cours de la création de mon projet

    Bon trêve de bavardages, Je commence avec mes questions. Comme pour tout projet les premières questions qui vont être soulevées sont des questions
    de conception/architecture du projet:

    J'ai fait des recherches sur les architectures java EE et lu la plupart des tutoriels présents sur ce site. Mais il reste des notions que je n'ai pas comprises.

    1 ) On peut lire sur le net que le framework spring est un conteneur d'application dit 'leger', mais dans la plupart des tutoriels sur le java EE, quand spring est utilisé c'est en duo avec un conteneur dit lourd du type glassfish, jboss etc...
    Alors voila ma question : Spring peut il être utilisé seul ou a-t-il besoin d'être associé à un serveur d'application ? si oui dans quels cas a-t-on besoin d'un serveur d'application en plus de spring?
    En résumé, Spring peut-il-remplacer un serveur d'application ?

    merci d'avance pour vos réponses

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Spring, c'est beaucoup de composant. Le composant principal c'est IOC qui fait l'injection de dépendance dans tes classes. Celui-ci s'utilise dans n'importe quelle application (serveur, client lourd, ...) et prend peu de place. Il s'agit juste d'une couche d'initialisaition (en gros) de ton application plus quelques possibilités de gérer le comportement (transactions par exemple).


    Ensuite t'as spring web qui lui est un composant destiné à faire des application web et s'utilise exclusivement dans une conteneur J2EE.

    Au final, même si certaines partie de spring sont destinées à être utilisée dans des conteneur j2EE, en lui même spring n'a rien à voir avec J2EE. Tu peux faire du spring sans conteneur, tu peux faire du J2EE sans spring. Je te conseillerais d'ailleurs de commencer sans spring si tu veux apprendre le J2EE.

  3. #3
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Citation Envoyé par klane Voir le message
    Alors voila ma question : Spring peut il être utilisé seul ou a-t-il besoin d'être associé à un serveur d'application ? si oui dans quels cas a-t-on besoin d'un serveur d'application en plus de spring?
    En résumé, Spring peut-il-remplacer un serveur d'application ?

    merci d'avance pour vos réponses
    Euh d'après mes connaissances, tu confonds des termes là. Spring c'est un framework Java. C'est une boîte à tout faire quoi. JBoss, Tomcat & co ce sont des serveurs d'applications. Tu auras forcément besoin d'un serveur d'application.

    Edit : Bien d'accord avec tchize_, commence avec une application propre en J2EE sans Spring avant. Ça évitera de te noyer.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 20
    Points : 25
    Points
    25
    Par défaut
    merci d'être aussi réactif je vais donc dans un premier temps suivre ton conseil et me passer de spring. Je pense que j'aurais une meilleure compréhension de ce qu'est réelement ce framework une fois que j'aurai travaillé sans.

    Je vais donc potasser tout ce qui est serveur j2ee et je reviendrai poser des questions après, merci

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    je rajoute qu'une partie de spring fait maintenant double emploie avec java EE 6

    IOC:
    java EE6=CDI/WELD
    Spring= spring core
    Gestion des transaction
    java EE6=EJBs
    Spring= annotations @Transactional + Asectj
    Interfaces web:
    JAVA EE6=JSF
    Spring: Spring web

  6. #6
    Nouveau membre du Club
    Inscrit en
    Novembre 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 20
    Points : 25
    Points
    25
    Par défaut
    Bon ça y est je vais me lancer, j'ai donc décidé d'une architecture pour mon projet.

    Comme vous me l'avez conseillé je vais utiliser une achitecture java EE sans srping.

    Il me faut donc un serveur d'application pour contenir mon appli. D'après ce que j'ai pu lire dans d'autres topics, un JOnAS semble être une bonne solution.
    J'ai donc choisi ce serveur.

    Mon application va être ( rien de surprenant ) divisée en 3 couches

    Je vais commencer par m'appliquer à développer la couche d'accès à la bdd ( qui sera une bdd mysql ).

    Pour faire quelque chose de propre j'aimerais que cette couche d'accès soit assez standard.

    Venons en donc aux questions

    1) Tout d'abord : pensez vous que je devrais commencer mon application par ce bout là ou y a-t-il quelque chose d'autre à faire avant?

    2) Si je commence par ça, devrais je faire une première implémentation de la couche d'accès avec JDBC, pour en venir ensuite à ajouter un dao et éventuellement finalement arriver sur du hibernate?
    Ou bien devrais-je directement mettre en place la dao voir directement hibernate?
    Ou alors devrais-je mettre en place une autre solution ?

    3) Selon les solutions possibles à la question d'avant, dans quels cas est ce que j'aurais à creer la table sql de toutes pièces et dans quels cas pourra-t-elle être construite automatiquement?

    Voila ... comme vous l'aurez compris je suis un peu submergé par le nombre de solutions differentes disponibles pour réaliser la même chose... mais bon mieux vaut trop que pas assez

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Pour l'accès données, attaque directement du JPA, c'est standardisé et destiné à ça

  8. #8
    Nouveau membre du Club
    Inscrit en
    Novembre 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 20
    Points : 25
    Points
    25
    Par défaut
    Encore merci pour tes réponses.

    Je retiens donc JPA.
    Je pense que je vais choisir hibernate comme implémentation de JPA.

  9. #9
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    C'est le conteneur J2EE qui choisi l'implémentation, pas l'application

  10. #10
    Nouveau membre du Club
    Inscrit en
    Novembre 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 20
    Points : 25
    Points
    25
    Par défaut
    La je ne comprends pas... Je croyais que hibernate était une implémentation de jpa...

    En réalité si je comprends bien c'est JOnAS qui a sa propre implémentation de jpa ?

    AAAAARGh, plus j'ai l'impression de comprendre le J2EE plus je me rends compte que je comprends rien....

  11. #11
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Hibernate est bien une implémentation de JPA. Mais les implémentation de JPA sont intégrées au conteneur. Par exemple si tu prend jboss, il utilise hibernate, mais tu n'a pas à mettre hibernate dans ton application. Tu est dans un environnement j2EE, tu sais qu'en J2EE6 il y aura support du JPA, tu n'a pas à fournir d'implémentaiton. Le conteneur s'en charge. Jonas, suivant sa configuration, pourra utiliser Xplus, Hibernate, TopLink Essential ou openJPA.

  12. #12
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2008
    Messages : 70
    Points : 76
    Points
    76
    Par défaut
    Un conseil si je peux me permettre :

    Commence une application web sans aucun framework , utilise simplement glassfish ou tomcat comme conteneur web.

    Sans framewrok tu peux tout de même faire une petite application web en MVC 2 et respectant les couches 3tiers.

    Au niveau des vues tu utilise des JSP ( avec des scriptlets ou du jstl )
    au niveau du controlleur tu te fais une grande classe qui derive de httpservlet et qui va appaeer les méthodes adéquates en fonction de la requete recue.
    Et au niveau du modele tu te fais des dao en classes statics qui se connectent a ta base mysql.
    Et enfin ne pas oublier les beans.


    Par la suite tu fais évoluer ton application en ajoutant un frameworks à la fois pour bien effectuer ta monté en compétence.

    Tu reproduit l'application mais pour la gestion du controleur tu utilise Struts.
    Puis par la suite pour gerer de manière plus efficace la persistance des données tu associe tes beans a tes tables à l'aide de Hibernate.

    Et enfin si tu veux optimiser le dynamisme de tes pages web tu peux faire une évolution en introduisant le framework jQuery qui va te permettre d'effectuer des appels AJAX ( plus facilement ) et plein de petits effets sympas .

    Tu pourrais même implémenter spring-security un composant permettant la gestion des utilisateurs qui se loggerons sur ton site.

    Enfin tu pourra faire évoluer ton conteneur web par jboss ou websphere qui te proposerons plus de possibilité en terme de gestion.


    Donc mon gros conseil c'est d'y aller par étapes pour bien assimiler ce que tu fais. Te lancer tout de suite avec des technos qui possèdent plein de config xml de partout peu complétement dérouter.


    Bon courage

  13. #13
    Nouveau membre du Club
    Inscrit en
    Novembre 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 20
    Points : 25
    Points
    25
    Par défaut
    Bonjour ramoucho75020,

    Merci pour ton avis qui me semble très pertinent, je pense sincèrement que je vais écouter tes conseils et faire tout ça au fur et à mesure.

    En effet à force d'essayer de faire du standard et intégrer plein de technos je n'arrive pas à commencer mon projet, la phase d'architecture est de plus en plus longue je n'ai au final pas réussi à écrire une ligne de code.

    Parcontre il y a juste une chose qui me tiens à coeur c'est d'utiliser maven pour mon projet, je trouve ça très propre et je trouve que cela m'aide à avoir plus de rigueur ( de plus à coté de svn je trouve que ça permet de faire partager mon projet plus facilement en cas de besoin ).


  14. #14
    Nouveau membre du Club
    Inscrit en
    Novembre 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 20
    Points : 25
    Points
    25
    Par défaut
    Bonjour a ceux qui passent par là.

    Voila deux semaines que je n'ai pas posté dans ce topic, je viens donc donner des nouvelles.

    J'ai enfin réussi à démarrer mon projet et je remercie tchize_, ramouncho75020, et Robin56 sans qui je n'aurais pas pu commencer.

    J'ai fini ma phase de choix de technologies et de configurations, j'ai suivi vos conseils et suis allé à l'essentiel : un tomcat, une architecture j2ee standard sans frameworks.... ou presque

    En effet je n'ai pas pu me passer de maven qui offre un confort génial je trouve et de gwt ou plutôt ext gwt qui est une technologie que je connais bien et qui me permet de m'affranchir des jsp et autres httpServlets que je trouve un peu complexe à mettre en oeuvre...

    J'ai suivi et adapté le tuto les bases du développement web en java pour réaliser l'architecture du programme.

    Sinon, parce que je vais pas poster sans poser une petite question quand même ,

    Le tuto explique bien la séparation entre les couches mais il les lie entre elles avec spring.
    M'étant promis que j'allais éviter spring pour la première version de mon appli, je voulais savoir comment les lier sans spring... ?

    merci à ceux qui passent par là et aux futures réponses

  15. #15
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Citation Envoyé par klane Voir le message
    un tomcat, une architecture j2ee standard sans frameworks
    Tomcat n'implémente que la partie "web" des specs J2EE. T'aura ni les EJB, ni JMS, ni CDI, ....
    En effet je n'ai pas pu me passer de maven qui offre un confort génial
    Maven n'est pas vraiment un framework mais un outils de compilation et de gestion du projet, au même titre que eclipse, etc. Il n'interviens pas sur les binaires

    M'étant promis que j'allais éviter spring pour la première version de mon appli, je voulais savoir comment les lier sans spring... ?
    CDI fait aussi l'inversion de contexte (IOC) et de l'injection de dépendances. Malhuereusement, va falloir passer à un serveur supportant CDI Je pense pas que tomcat gère ça.

    Alternativement, tu peux mettre WELD dans ton projet, qui est une implémentation de CDI "standalone", ce qui t'évitera de changer de serveur tout en restant dans les technos standard

    http://seamframework.org/Weld

  16. #16
    Nouveau membre du Club
    Inscrit en
    Novembre 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 20
    Points : 25
    Points
    25
    Par défaut
    En fait quand je disais sans spring c'était surtout pour dire sans framework.

    Si il est obligatoire de faire de l'IoC pour lier les couches entre elles alors j'utiliserais spring,

    je ne faisait pas la fine bouche sur le choix du framework en banissant simplement spring

    Je vais donc reposer ma question plus clairement :

    Est ce que je peux me passer de framework et d'IoC pour lier les couches entres elles?
    si oui est-ce une bonne idée? cela m'apportera-t-il une meilleure compréhension de l'implémentation d'une architecture j2ee ?

    merci

  17. #17
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Citation Envoyé par klane Voir le message
    Est ce que je peux me passer de framework et d'IoC pour lier les couches entres elles?
    Bien sur, on a fait ça pendant des années, passer à la main les arguments de couche à couche.
    si oui est-ce une bonne idée? cela m'apportera-t-il une meilleure compréhension de l'implémentation d'une architecture j2ee ?
    Difficile à dire. Comme je le dit, CDI fait partie de l'architecture J2EE, ca a été ajouté parce que ça correspond réellement à un besoin. C'est la question de savoir si tu préfère un fichier de config qui dit où tout va, ou si tu préfère hardcoder ces dépendances dans le code

    Personellement, je trouve que l'IOC bien utilisé amène un code plus clair.

  18. #18
    Nouveau membre du Club
    Inscrit en
    Novembre 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 20
    Points : 25
    Points
    25
    Par défaut
    Bon je suis peut être futur développeur, mais je suis déja faignant... donc spring et IoC m'iront très bien ...

Discussions similaires

  1. [Débutant] Création d'une application Java qui appelle des scripts Perl
    Par dark_angel91 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 31/05/2011, 20h31
  2. [Débutante] Création d'une application
    Par marsya dans le forum Servlets/JSP
    Réponses: 14
    Dernier message: 28/01/2008, 12h33
  3. NetBeans, création d'une application java impossible
    Par kokusho dans le forum NetBeans
    Réponses: 2
    Dernier message: 25/11/2007, 17h33
  4. [WPF][VB][Débutant]Création d'une application WPF
    Par actionthomas dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 21/08/2007, 19h25

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