Gate Training

logo-png
Java - Java EE

Formation Le développement Java

10 Jours

Description de la formation Java

Cette formation Java représente un cursus progressif de 10 jours visant à vous rendre autonome dans l’utilisation du langage Java et des frameworks incontournables que sont Hibernate et Spring. Vos solides compétences Java vous permettront d’être opérationnel tout en ayant acquis les bonnes pratiques du développement d’applications Java dans un contexte professionnel avec les outils de génie logiciel «vraiment» utilisés au quotidien.

Un premier module permet de vous familiariser avec l’IDE Eclipse pour mettre en œuvre les concepts objets de Java (Packages, Héritage, Interface, Classe abstraite, Exceptions). Les APIs de base (Collections, I/O, String, Date) sont explicitées en profondeur. Les participants sont également familiarisés avec les règles de nommage, le déploiement d’applications Java, l’accès à la documentation et les modernités de Java 8.

Le second module permet de présenter la persistance des données en Java (Hibernate/JPA) et de consolider votre connaissance de Java (fonctionnement interne de la JVM), tout en professionnalisant vos développements (outils de diagnostics de bugs, test unitaire avec Junit, intégration avec Maven, design patterns couramment utilisés).

Dans la dernière partie de la formation vous apprenez à utiliser Spring. Ce framework facilite et structure le développement ainsi que les tests en proposant un portefeuille complet de solutions aux développeurs. Spring s’appuie principalement sur l’intégration de trois concepts clés : l’inversion de contrôle (IoC) ou injection de dépendance, la programmation orientée aspect et une couche d’abstraction qui permet d’intégrer d’autres frameworks (comme Hibernate vu précédemment) et bibliothèques avec une plus grande facilité.

Attention, cette formation est composée de 3 modules, les dates indiquées sont celles du premier module de 5 jours. Pour connaitre les dates des modules suivants, contactez notre service commercial.

Objectifs

Compétences visées – Objectif opérationnel :

L’objectif de cette formation est de développer des applications avec le langage Java et de maintenir le code associé.

Objectifs pédagogiques :

À l’issue de cette formation, vous aurez acquis les connaissances et les compétences nécessaires pour :

  • Utiliser Eclipse et comprendre les apports d’un IDE (Integrated Development Environment)
  • Maîtriser la syntaxe Java et savoir appliquer les concepts objets au langage Java
  • Mettre en œuvre l’héritage et le polymorphisme
  • Gérer les exceptions
  • Gérer les dates et le temps avec l’API Date/Time
  • Utiliser les expressions Lambda, les références de méthodes
  • Mettre en œuvre l’API Stream pour la manipulation des flux de données
  • Connaître le fonctionnement de la JVM (Java Virtual Machine)
  • Comprendre les bases des Design Patterns
  • Effectuer une programmation parallèle
  • Accéder aux bases de données
  • Accéder au système de gestion de fichiers avec Nio.2
  • Réaliser des tests unitaires

À qui s’adresse cette formation ?

Public :

Cette formation Java s’adresse aux développeurs et aux chefs de projet

 

Prérequis :

Développeur possédant des connaissances sur les principes de base de la programmation objet

 

Contenu du cours Java

Présentation de Java 8

Historique, caractéristiques, JDK, JRE, versions
Rôle de la machine virtuelle
Déclinaisons : Java SE, Java EE, Java ME
Applications

ATELIERS

Installation du JDK 8 et du JRE 8

Outils de développement

Utilisation du compilateur du JDK
Prise en main d’Eclipse
Debugging

ATELIERS

Création d’un programme simple avec un éditeur, compilation puis exécution avec les outils du JDK 8
Installation d’Eclipse et création d’un projet, exécution normale puis exécution à l’aide du debugger

Java, fondamentaux

Types primitifs, variables, opérateurs
Branchements conditionnels, switch, boucles
Conversions de type, tableaux

ATELIERS

Création de programmes simples avec mise en œuvre de variables de différents types
Calculs avec opérateurs, branchements conditionnels et boucles

Classes, objets, relations entre objets

Packages, classes, objets, constructeurs, méthodes,  spécificateurs d’accès
Membres static, surcharge de méthodes
Les énumérations
Relations de composition, associations, héritage
Polymorphisme, classes abstraites, interfaces, conversions entre objets
La classe Object et ses méthodes
Les classes enveloppes

ATELIERS

Création d’une application avec classes en relation d’association, de composition, d’héritage
Mise en œuvre du polymorphisme

Les exceptions

Hiérarchie des classes d’exception
Exceptions contrôlées et non-contrôlées
Mécanisme try-catch, rôle de finally, try-with-ressources
Propagation d’exceptions

ATELIERS

Mise en place d’une gestion d’exceptions avec try-catch-finally dans une application
Utilisation du try-with-resources
Propagation d’exceptions contrôlées et non-contrôlées

Les traitements sur les chaînes de caractères

Manipulation de chaînes avec String et StringBuilder, Scanner, StringTokenizer
Utilisation des expressions régulières avec Pattern et Matcher
Formatage des chaînes de caractères

ATELIERS

Utilisation de StringBuilder pour modifier une chaîne de caractères
Analyse d’exemples avec Pattern et Matcher

Les collections et la généricité

Choix d’un type de collection: List, Set, Queue, Map
Intérêt de la généricité
Redéfinition des méthodes equals et hashCode
Parcours de collections avec itérateur, boucle for-each
Classes ArrayList, HashSet, TreeSet, HashMap

ATELIERS

Remplacement d’un tableau java par une collection ArrayList dans un projet

Les flux d’entrées-sorties

Flots d’octets, de caractères
Manipulation de fichiers en lecture/écriture
Manipulation de répertoires
Bufferisation des données
Sérialisation d’objets

ATELIERS

Ecriture/lecture dans un fichier texte, puis un fichier binaire
Manipulation de répertoires avec File
Désérialisation d’objets présents dans un fichier

La nouvelle API pour la gestion du temps et des dates

API des packages java.time et java.time.format
Parsing et formatage des dates

ATELIERS

Saisie de dates, affichage en français, calculs

Introduction aux expressions Lambda

Classes internes anonymes, expressions lambdas
Interfaces java 8
Interfaces fonctionnelles

ATELIERS

Remplacement de classes internes anonymes par des lambdas
Création de lambdas avec Consumer, Supplier et Predicate

Déploiement d’applications

Principe du déploiement
Création/utilisation de librairies jar
Création/utilisation de jar exécutables

ATELIERS

Création avec Eclipse d’une librairie pour utilisation dans un projet
Déploiement d’une application au moyen d’un fichier jar exécutable

Fonctionnement de la JVM

Chargement des classes, Classloader, classpath
Gestion de la mémoire, le garbage collector
Le multithreadings, support de Java pour la gestion des threads
Le modèle de sécurité de Java
La réflexion, les annotations
Les outils d’inspection, debugger, surveillance, traces

ATELIERS

Exécution d’exemples pédagogiques illustrant les concepts présentés

Java et les design patterns

Introduction aux design patterns, les documentations de référence
Pattern singleton
Patter Factory
Pattern Decorator
Pattern Builder
Pattern Proxy

ATELIERS

Implémentation des 5 patterns les plus répandus

Java et les tests unitaires

Présentation, intérêt
Automatisation et intégration des tests dans le processus de builds, l’exemple de Maven
Mise en œuvre avec Junit4, assertions, annotations
Cycle de vie d’exécution d’un test
Données de tests
Suite de tests

ATELIERS

Création de tests Junit pour tester des classes
Mise en œuvre d’une suite de tests

Java et les bases de données

Historique de l’accès aux données via Java, présentation de JDBC
L’API JDBC, Connection, Statement, ResultSet
Problématique de l’ORM et introduction à JPA
Configuration JPA, l’exemple d’Hibernate
Mapping basique, API de l’EntityManager, les transactions
Mapping de l’héritage
Mapping des associations, lazy-loading et cascading
Le langage JPQL
L’API criteria
Les transactions longues

ATELIERS

Mise en œuvre de JPA avec Hibernate pour rendre persistants des beans entités
Utilisation du langage de requêtes JPQL pour rechercher des beans entités
Mise en œuvre de l’héritage et d’associations unidirectionnelles et bidirectionnelles

Introduction aux Framework Java

Notion de framework et de conteneur
Vue d’ensemble et cas d’utilisation
Le pattern IoC et l’injection de dépendances
Indépendance vis à vis des implémentations
Spring Core et l’injection de dépendance
Exemple basique

ATELIERS

Mise en place de l’IDE
1ère configuration de Spring, Tests via JUnit

Découverte de l’API Spring

Les beans, BeanFactory et ApplicationContext
Mode singleton ou prototype, cycles de vie des beans
Gestion des propriétés, notions de collaborators
Méthodes d’injection de dépendances
Annotations et Autowiring
Définition de bean abstrait, gestion de l’héritage

ATELIERS

Différents types de configuration Spring, utilisation des différentes annotations

L’IoC et les tests

Isolation des classes à tester et Mock Objects
Distinction tests unitaires et test d’intégration
Les apports de Spring pour les tests
Indépendance vis à vis des outils de tests
Injection des données de test
Mécanisme de cache pour l’accélération des tests
Rollback des transactions

ATELIERS

Création de mock Objetcs, configuration Spring de Test, mise en place d’une suite de tests

L’IoC et les architectures multi-tiers

Présentation architecture multi-tiers,
Séparation claire des différentes couches
Injection de services métiers, gestion des transactions, les choix possibles pour l’implémentation
Couche de persistance et accès aux données : Exemple de Spring Data JPA
Tests unitaires des différentes couches, tests d’intégration

ATELIERS

Application multi-tiers complète, utilisation de services POJO, EJB ou Rest, Implémentation JPA avec Hibernate

Travaux Pratiques

50 % du temps est consacré aux Ateliers, l’IDE Eclipse est utilisé

Réf:

0056

Tarif:

600 Dt

Niveau:

Fondamental

Classe à distance:

Possible

Pas de sessions disponibles