Accueil > Développement logiciel > Java, JEE, C, C++ > Développement Java, Spring et Hibernate
Formation #DJSH

Formation Développement Java, Spring et Hibernate

Du 09 au 18 Sept. 2019

10 jours

Réf. DJSH

Vous souhaitez personnaliser le programme de cette formation pour qu'elle réponde aux spécificités de votre entreprise ? Demandez un devis.

Objectifs

  • Programmer en Java
  • Utiliser et configurer Eclipse
  • Construire des interfaces graphiques avec Swing
  • Comprendre l'environnement JEE (Web, servlets, modèle MVC, EJB3)
  • Gérer la persistance des données avec Hibernate/JPA (stockage, lecture, transaction)
  • Mettre en oeuvre Spring dans vos applications
  • Intégrer d'autres frameworks à Spring (comme Hibernate)
  • Mettre en oeuvre les possibilités de tests proposées par Spring
Programme
1/ Java et la programmation objet
  • Caractéristiques et particularités du langage Java, domaines d'application (Application, Applet, Développement Serveur, Androïd)
  • Portabilité des programmes Java à travers la JVM
  • Gestion de la mémoire
  • Encapsulation et modificateurs de visibilité
  • Java et l'héritage simple, le mot clé final
  • Import et packages
  • Java, interface et classes abstraites
  • Java un langage sûr et robuste, Modèle de sécurité, mécanismes des exceptions
  • Le multithreading
  • Exécution d'un programme Java, empaquetage et format et types d'exécutables
  • JDK, JRE, Les outils du développeur
2/ Prise en main de l'IDE Eclipse
  • Arborescence et chemin d'accès
  • Principe des protections
  • Attributs des fichiers et des répertoires
  • Bien utiliser l'aide en ligne
  • Configuration des exécutions, fonctionnalités du debugger
3/ La syntaxe
  • Structure d'un fichier .java
  • Constructeur et processus d'instanciation, le mot clé static
  • Notion d'identité objet
  • Déclaration de variables et Initialisation
  • Types primitifs et classes du package java.lang
  • Opérateurs d'affectation, de comparaison, booléens, ...
  • Instruction de contrôles
  • Boucles et itérations
  • Tableaux et collections
  • Gestion des exceptions, blocs try, catch, finally
4/ Gestion des entrées sorties
  • Présentation du package java.io
  • Format binaire ou format texte, jeu de caractères et encoding
  • Opérations de lecture
  • Opération d'écriture
  • Support pour XML et le parsing de fichiers
  • Sockets, protocoles et flux
5/ Construction d'interface
  • Présentation de SWING
  • Composants d'interface
  • Les différents conteneurs
  • Gestionnaire de mise en forme : les layouts
  • Gestionnaire des évènements et listeners
  • Rendu d'image, dessins vectoriels et modélisation 3D
6/ Introduction à Java EE
  • Le standard Java EE et les architecture n-tiers
  • Services techniques des serveurs d'application et Les différentes APIs
  • Modèles de programmation distribuée
  • Plugins Eclipse pour le développement Java EE
  • Implémentation de la couche métier avec les EJB3.0
  • Composants de la couche de présentation, servlets, vues et Java Beans
  • Le pattern MVC
7/ Intégration d'outils de génie logiciel et IDE Eclipse
  • Gestion de Version avec svn, intégration dans Eclipse
  • Le plugin WTP
  • L'outil ant : automatisation déploiement
  • Le build avec Maven, intégration des tests unitaires (Junit) et de conformité (Checkstyle)
  • Intégration continue avec Hudson
  • Gestion de projet et suivi des bugs avec Trac et JIRA
  • Test de charge et profiling (Jmeter et Jprofiler)
8/ Hibernate : Introduction à la problématique de persistance des objets
  • Origines du problème
  • Les facettes de l'impédance mismatch
  • Architectures de la persistance
  • Historique des solutions (JDBC, JDO, Hibernate)
  • Rappel sur JDBC / SQL et ses limites
9/ Premier pas avec Hibernate - mapping de l'identité
  • Installer Hibernate
  • Initialiser le framework Hibernate
  • Opérations CRUD sur les objets
  • Identité d'objet et cycle de vie
10/ Mapping de l'héritage
  • Le problème du mapping de l'héritage
  • Notion de relations polymorphes
  • Approche : une table par classe concrète
  • Approche : une table par hiérarchie
  • Approche : une table par classe
11/ Mapping des associations
  • Association et navigation
  • Association 1-N, N-1, N-N
  • Composition
  • Classe association
12/ Accès en lecture aux objets (HQL, API Criteria et requêtes SQL)
  • Le pattern Lazy Loading
  • Usage de HQL
  • Usage de l'API Criteria
  • Usage des SQL Query
13/ Accès en lecture aux objets (HQL, API Criteria et requêtes SQL)
  • Principe de persistance transitive
  • Attachement / détachement des objets d'une session
  • Supprimer une grappe d'objets
14/ Gestion des transactions
  • Rappel sur la notion de transaction
  • Transaction et concurrence d'accès
  • Niveaux d'isolation
  • Stratégies de contrôle de la concurrence
  • Gestion optimiste
  • Gestion pessimiste
  • Notion de transaction utilisateur
15/ Architecture et Hibernate
  • Architecture d'Hibernate
  • Comment gérer la session Hibernate (pattern du ThreadLocal)
  • Comment programmer des règles métiers (frontière métier / accès aux données)
  • Usage du Pattern Data Access Object (DAO) avec Hibernate
  • Comment gérer les transactions utilisateurs avec Hibernate
  • Intégrer Hibernate dans une application web.
  • Réalisation du TP6 (codage d'un cas d'utilisation complexe)
16/ Introduction à Spring
  • Concepts de conteneur léger
  • Vue d'ensemble et exemples d'utilisation
  • Pattern "Inversion de Contrôle (IoC) ; Injection de dépendance"
  • Tests unitaires en isolation
  • Approche MVC avec Spring MVC
17/ Mise en oeuvre de Spring
  • Les Beans, BeanFactory et ApplicationContext
  • Modes singleton ou prototype
  • Gestion des propriétés, "collaborators"
  • Méthodes d'injection de dépendance
  • Configuration de Beans spécifiques à Spring, cycle de vie
  • Définition de Bean abstrait et héritage
18/ Spring et l'accès aux données (JDBC et Hibernate)
  • Pattern DAO avec JDBC et les Classes abstraites de Spring
  • Configuration de la SessionFactory d'Hibernate dans le contexte d'application Spring
  • IoC : Hibernate Template et Hibernate Callback
  • Implémentation DAO avec les APIs Hibernate
  • Démarcation de transactions par programmation et déclaration
19/ Support de Spring pour les Tests
  • Concepts de l'eXtreme programming
  • Tests unitaires et test d'intégration
  • Indépendance de Spring vis à vis des outils de test
  • Apports de Spring : Cache de l'ApplicationContext, Injection de données de test, et rollback des transactions
20/ Programmation orientée aspect
  • Concepts de l'AOP
  • Terminologie utilisée : aspect, joinpoint, advice, shortcut, weaving
  • Les différents types d' « advice » : around, before, throws, after
  • Objectifs et fonctionnalités AOP de Spring
  • Intégration avec le framework AspectJ
Approche Pédagogique

Approche Pédagogique

  • Pédagogie très opérationnelle fondée sur l'alternance entre théorie et pratique
  • Quiz
  • Etudes de cas
  • Echanges d’expériences
Participants

Participants

  • Développeurs
  • Chefs de projet
Dates

Dates

  • Du 09 au 18 Sept. 2019