Parce que les applications développées en Java sont très facilement portables sur différents systèmes d'exploitation tels que Windows, Mac OS, UNIX ou encore Linux, ce langage orienté Objet qui reprend en grande partie la syntaxe du C++ est toujours très prisé par les équipes de développement. Ce cursus métier vise à faire découvrir aux participants comment bien programmer en Java, et à les rendre autonomes pour développer des applications Web avec les EJB et les frameworks Spring, Hibernate et JSF. A l'issue de ce parcours de 14 jours, les participants disposeront des compétences nécessaires prendre en charge des projets de développement d'applications web en Java.
1 - Les fondamentaux de la programmation en Java (5j)
- Objectif : découvrir le langage de programmation Java et disposer des bases nécessaires au développement d'applications Web Java dans des environnements éditeur (WebSphere, WebLogic) comme Open Source.
- Présentation de l'écosystème java : composants techniques de java (JDK) et principales apis, les outils java : JavaDoc, jar et co
- Panorama des principaux ide : Eclipse, Netbeans et Intellij
- L'ide Eclipse
- Les bases du langage : la syntaxe
- Les concepts orientes-objet en java
- Gestion des erreurs avec les exceptions
- Bibliothèques standards (collection, date, entrées/sorties)
- Accès aux Systèmes de Gestion de Bases de Données avec JDBC
- Fichiers de propriétés et l'api d'internationalisation (i18n)
- API pour les fichiers de logs
- Améliorer la qualité d'une application grâce aux tests unitaires
- Programmation fonctionnelle et lambda expressions
- Introduction aux nouveautés java 9
2 - Développement Java avancé et accès aux données (4j)
- Objectif : maîtriser l'utilisation des frameworks et leurs interactions pour déterminer la meilleure combinaison en fonction des spécificités du projet de développement
- Présentation de l'écosystème JEE : le standard JEE et ses composantes, les frameworks JEE Spring et Hibernate , comparaison entre les deux solutions (EJB Vs. Spring Hibernate)
- Mise en place de la couche présentation de l'application web : rappel sur le patron de conception MVC, introduction aux JSP/Servlet, mise en oeuvre de la partie présentation et contrôle
- 1ère approche - architecture d'une application JEE avec les EJB 3.2 : la spécification EJB 3.2 (architecture et principes du conteneur lourd), la triade des EJB (session, entité et message-driven beans), packaging et déploiement des EJB 3, localisation des EJB 3 avec JNDI, les EJB Entity et mapping Objet-Relationnel avec JPA
- 2ème approche - architecture d'une application JEE avec Spring et Hibernate : Spring et la notion de conteneur léger, instanciation des objets par le conteneur Spring, programmation Orientée Aspect avec Spring AOP, accès aux données (présentation du JDBC Template), Hibernate (présentation et architecture), installation et configuration d'Hibernate, Persistance XML des classes et des attributs et associations et héritage, Hibernate, options avancées
- Conclusion : revue des points clés des deux approches, les plus et moins de chaque approche
3 - Conception d'interfaces graphiques Java EE avec JSF, Struts et Spring MVC (5j)
- Objectif : Connaître les principaux frameworks MVC et savoir identifier et utiliser le plus adapté à son projet pour concevoir une interface graphique Java EE de qualité.
- L'écosystème JEE et les différents frameworks MVC : Qu'est-ce-que MVC ? Les frameworks du moment (Struts, JSF et Spring MVC), comparaison détaillée entre les différents frameworks
- 1ère solution, Struts - Les composantes de Struts, les Action Forms et la servlet Action de Struts, gestion de la cinématique avec Struts, validation des formulaires
- 2ème solution, JSF : les avantages et inconvénients, les Managed Bean et les Facelets, la navigation, EL (Expression Language), les messages et l'i18n, la validation des formulaires
- 3ème solution, Spring MVC : Notion de conteneur léger, mise en oeuvre du pattern MVC avec Spring Web-MVC, utilisation des annotations, couplage Spring - JSR 303 pour la validation de la saisie, mise en oeuvre d'Ajax avec Spring MVC
- Exposition de services web avec REST : présentation des services web, comparaison avec les web services SOAP et REST, mise en oeuvre avec Spring pour exposer des services