Organisme de Formation aux technologies et métiers de L'informatique
java

Cursus Développeur Web Java

Cursus Métier
Ce cursus métier est composé de plusieurs formations distinctes

Informations générales

MET008
14 jours (98h)
8 000 €HT

Objectifs

Après ce cours, vous serez capable de :

  • maîtriser la syntaxe et les principales APIs du langage Java
  • consolider la compréhension des concepts orientés objet
  • programmer en Java en toute autonomie
  • maitriser les différentes APIs du langages (collections, I/O, JDBC)
  • manipuler des données à l'aide de JDBC et introduction à la persistance transparente avec JPA
  • appliquer le paradigme de la programmation fonctionnelle
  • tester et débuguer une application Java
  • découvrir les dernières évolutions de Java
  • maîtriser l’utilisation d’un IDE Java
  • Maîtriser le développement Java avec l'IDE Eclipse
  • Identifier comment utiliser les principaux Frameworks Java
  • Disposer des connaissances nécessaires au développement d'une application Java
  • Savoir tester, debugger et optimiser ses applications
  • Maîtriser la programmation d'interface utilisateurs d'applications Web Java
  • Mettre en œuvre une application web de bout en bout en JEE tout en respectant le patron d'architecture MVC
  • Avoir une présentation détaillée sur les frameworks MVC JEE les plus populaires : Struts, JSF et Spring MVC
  • Maîtriser la conception d'interfaces Web et la validation des formulaires
  • Utiliser les services Web avec REST
plus d'infos

Public

Ce cours s'adresse avant tout aux personnes suivantes :

  • Développeurs et analystes programmeurs anciennes technologies
  • Chefs de projets

Prérequis

Pour suivre ce cours, vous devez déjà posséder les connaissances suivantes :

  • Disposer d'une expérience d'un langage de programmation (C, C++, VB...)
  • Connaître les principes de la programmation orientée objet
  • Connaissance des concepts de bases de données relationnelles et du langage SQL
  • Avoir déjà développé et livré une application est un plus pour suivre cette formation

Programme de la formation

Partie 1 : Les fondamentaux de la programmation Java (5j)

  • Présentation de l'écosystème Java
    • Introduction à Java et à ses tiers techniques J2SE/J2E/J2ME et la JVM
    • Présentation de l'architecture d'une application respectant le parton d'architecture MVC et positionnement de Java
    • Présentation des composants techniques de Java (JDK) ainsi que des principales APIs
    • Les outils Java : JavaDoc, Jar et co
    • Panorama des principaux IDE : Eclipse, NetBeans et IntelliJ
  • L'IDE Eclipse
    • Notions de workspace, vues et perspectives
    • Présentation des différents wizard
    • Extensions avec Eclipse Marketplace
    • Les accès aux bases de données et outils serveurs dans Eclipse
  • Les bases du langage : la syntaxe
    • Déclaration de variables
    • Les constantes et les types énumérés
    • Les bonnes pratique d'écriture et de nommage
    • Les opérateurs
    • Instructions de contrôle
    • Boucles et itérations
    • Les tableaux
    • La classe String
    • La classe Scanner pour débuter avec les entrées/sorties
    • Notions de visibilité
    • Variable de classe vs. variable d'instance
    • Les blocs static
  • Les concepts orientés Objet en Java
    • La classe et ses attributs ainsi que les bonnes pratiques de nommage
    • Les accesseurs
    • Le mot-clé this
    • Méthodes (nombre d'arguments fixe et variable)
    • Les constructeurs avec et sans paramètres, notion de surcharge
    • Destructeur avec le garbage collector et la méthode finalize()
    • Les références
    • La méthode toString()
    • La méthode equals() pour vérifier l'égalité des objets
    • L'encapsulation, les imports de packages, les imports static
    • Les classes Wrappers
    • Unboxing et l'autoboxing
    • Le widening et narrowing (avec les notions de upcasting et downcasting)
    • Les génériques en Java
    • L'API Date
    • La classe Optional
  • Factorisation du code avec le concept d'héritage
    • Factorisation et spécialisation avec les mécanisme d'héritage
    • Bonnes pratiques et conseils méthodologiques pour identifier les hiérarchies d'héritage
    • Les mots clés : extends, instanceof, super, @override, protected
    • Redéfinition des méthodes dans les classes filles
    • Notion de polymorphisme
    • Les classes abstraites
  • Les interfaces
    • La notion de contrat et vision client vs. vision développeur
    • Implémentation de plusieurs interfaces par une classe
    • Les méthodes default, private et static depuis Java 9
    • Les mots-clés, l'héritage multiple entre plusieurs interfaces
  • Les collections en Java
    • Présenter l'API des collections en Java
    • Savoir choisir entre les différentes interfaces SET, LIST et MAP
    • Pratiquer les classes d'implémentations les plus connues
    • Redéfinition des méthodes equals() et hashCode()
    • Les interfaces comparable et Comparator pour les ensembles triés
    • Parcours des collections
    • La classe Stream et les filtres
  • Gestion des erreurs avec les exceptions
    • Qu'est-ce que qu'une exception ?
    • Les différentes exceptions en Java
    • Les blocs try/catch/finally
    • Gestion locale ou centralisée
    • Créer ses propres exceptions métier
  • Les entrées/sorties
    • Les entrées/sorties de fichiers
    • Gérer les différents formats de flux d'E/S
    • La sérialisation
  • Accès aux SGBDR avec JDBC
    • Présentation de la librairie JBDC
    • Connexion à une base de données, exécution d'une requête et itération sur les résultats avec les interfaces Connection, Statement et ResultSet
    • Requêtes paramétrées et requêtes stockées
    • Introduction à l'API JPA : objectifs et petite démo
  • Améliorer la qualité d'une application grâce aux tests unitaires
    • Créer des tests unitaires avec JUnit
    • Créer des suites de tests avec JUnit
    • Générer des rapports
    • Introduction à la notion de couverture de code et exemples de frameworks
    • Options avancées de la perspective Debug
  • Programmation fonctionnelle et Lambda Expressions
    • Introduction à la programmation fonctionnelle
    • Exemples de Lambda Expressions
    • Référentiels et méthodes
  • Introduction aux nouveautés Java depuis la version 9
    • Présenter les nouveautés les plus marquantes depuis la version 9
    • Donner des exemples pratiques ainsi que des petites démos

Partie 2 : Développement Java avancé et accès aux données (4j)

  • Présentation de l'écosystème JEE
    • Le standard JEE et ses composantes (EJB, JSP/Servlet et JSF)
    • Les frameworks JEE Spring et Hibernate
    • Comparaison détaillée 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 (réutilisée dans la partie deuxième solution voir ci-dessous)
  • 1ÈRE APPROCHE : Architecture d'une application JEE avec les EJB 3.2
  • Présentation des 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
    • Injection de dépendances
    • Comment créer un client standalone et un client Web
  • Les EJB Entity et mapping Objet-Relationnel avec JPA
    • Présentation des EJBs Entity
    • Introduction à JPA (Java Persistance API)
    • Mapping objet-relationnel, rôle de la clé primaire, mapping des associations (one-to-many, many-to-one etc.)
    • L'héritage
    • EQL, le langage de requête orienté-objet
  • 2ÈME APPROCHE : Architecture d'une application JEE avec Spring et Hibernate
    • 6.1)
  • Spring
    • Notion de conteneur léger
    • Instanciation des objets par le conteneur Spring (constructeur et par setters)
    • L'injection de dépendance et inversion de contrôle
    • Programmation Orientée Aspect avec Spring AOP
    • Access aux données : présentation du JDBC Template
  • Hibernate
    • Hibernate : présentation et architecture
    • Installation et configuration
    • Persistance XML des classes et des attributs, associations et héritage
  • Hibernate, options avancées
    • Optimisation avec l'utilisation du cache de second niveau
    • Traitements en mode BatchVersioning, transactions et accès concurrents
    • Les requêtes avec HQL, Criteria, By The Example, Detached Criteria
    • Couplage avec Spring (Hibernate Template) pour une solution ORM plus transparente
  • Conclusion
    • Revue des points clés des deux approches
    • Les plus et moins de chaque approche

Partie 3 : Conception d'interfaces graphiques Java EE avec JSF, Struts 2 et Spring MVC (5j)

  • Présentation de l'écosystème JEE et des différents frameworks MVC
    • Qu'est-ce-que MVC ?
    • Les frameworks du moment, Struts, JSF, Spring MVC
    • Comparaison détaillée entre les différents frameworks
  • Première solution : Struts 2
    • Introduction aux composantes de Struts
    • Les Action Forms et la servlet Action de Struts
    • Gérer la cinématique avec Struts
    • Validation des formulaires
    • Mise en oeuvre
  • Deuxième solution : JSF
    • Introduction à JSF
    • JSF: les avantages / inconvénients
    • Les nouveautés dans JSF
    • Les Managed Bean et les Facelets
    • La navigation
    • EL: Expression Language
    • Les messages et l'i18n
    • La validation des formulaires
    • L'affichage des collections à longueur variables
  • Troisième solution : Spring MVC
    • Introduction à Spring et la notion de conteneur léger
    • La mise en oeuvre du pattern MVC avec Spring Web-MVC
    • Utilisation des annotations dans la mise en oeuvre du modèle MVC
    • Couplage Spring - JSR 303 (Bean Validation) 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
plus d'infos

Méthode pédagogique

Chaque participant travaille sur un poste informatique qui lui est dédié. Un support de cours lui est remis soit en début soit en fin de cours. La théorie est complétée par des cas pratiques ou exercices corrigés et discutés avec le formateur. Le formateur projette une présentation pour animer la formation et reste disponible pour répondre à toutes les questions.

Méthode d'évaluation

Tout au long de la formation, les exercices et mises en situation permettent de valider et contrôler les acquis du stagiaire. En fin de formation, le stagiaire complète un QCM d'auto-évaluation.

Mis à jour le 04/03/2025