Spring. par l exemple. Gary Mak. Architecte Java JEE



Documents pareils
Cours en ligne Développement Java pour le web

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Auto-évaluation Aperçu de l architecture Java EE

Une Histoire de Migration Agile

Hassene BELGACEM. Expériences Professionnelles. JEE architect / Technical leader. Ingénieur Informatique. Cycle Préparatoire

Problématiques des développements Java/J2EE

F O R M A T I O N CATALOGUE

Notre vision, Votre croissance

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É JAVA - Android. 29 ans - 5 ans d'expérience

les techniques d'extraction, les formulaires et intégration dans un site WEB

Jérôme Paul Attestation de Macrovision pour le cours portant sur les technologies Flexlm d administration de licences Formation à Motorola

Spring par la pratique

Introduction à la plateforme J2EE

Patrons de Conception (Design Patterns)

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Cyrille GUERIN 823, place Soulanges Brossard, J4X1L8

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É JAVA - J2EE. 27 ans - 5 ans d'expérience

Consultant MOE/Référent technique JAVA/J2EE JSF, RICH FACES

Assurances & Mutuelles, Industrie, Santé, Énergie, Transport, Médias / Multimédias, Télécoms, Services

7 villa de la citadelle Né le 13 mai Arcueil Nationalité : Française. Développeur Web JEE COMPÉTENCES

CQP Développeur Nouvelles Technologies (DNT)

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Expert technique J2EE

31 ans - 8 ans d'expérience

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Refonte front-office / back-office - Architecture & Conception -

Un serveur d'archivage

<Insert Picture Here> La GRC en temps de crise, difficile équilibre entre sentiment de sécurité et réduction des coûts

Urbanisation des systèmes d information

Vérifier la qualité de vos applications logicielle de manière continue

Président d Inotekk Gestion de la société, développement du portefeuille clients, gestion et réalisation des projets informatiques

Logiciel de gestion d emploi du temps

Gestion de tests et tests de performance avec Salomé-TMF & CLIF

openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de

Instrumentation de code Java

Présentation générale

Alfstore workflow framework Spécification technique

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É JAVA. 32 ans - 6 ans d'expérience

Notre processus d embauche

Master Informatique et Systèmes. Architecture des Systèmes d Information. 03 Architecture Logicielle et Technique

PRODUCTS LIST (updated 11th January 2010)

Formations Cours du soir Coaching Stage intensif. Brochure Rencontrez-nous au salon «Solutions Linux» 2010, stand B14

Rapport de projet de fin d études

Mettez les évolutions technologiques au service de vos objectifs métier

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

Youssef LYHYAOUI Ingénieur Java/J2EE, SOA, ESB, Web services 31 ans Statut : Indépendant SITUATION ACTUELLE

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

GECKO Software. Introduction à MOBIDICK. Modular But Integrated Application Framework

Catalogue des formations

Qui sommes nous? +600 clients en France et à l international

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

DEVELOPPEMENT WEB & PROGRAMMATION

Mise en place d'un serveur d'application SIG au Conseil général de Seine-et-Marne

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully

An Phong Do. 567 croissant des Glaïeuls Laval (Québec) H7X 3H2 Cellulaire : anphongdo@gmail.com

Présentation de SOFI 2.0

Formation en Logiciels Libres. Fiche d inscription

PROGRAMME DE FORMATION Cursus Développeur architecte JAVA - 50 jours. Avril - Juin 2013 Casablanca, Maroc.

Développement logiciel, Java, JEE

Formation Esup-Commons V2

Compte Rendu d intégration d application

Le tout à l usage dans un IaaS public «Comment une plateforme industrielle permet de déployer des usages applicatifs en accord avec cette promesse»

1 JBoss Entreprise Middleware

Nouveautés de Drupal 8. Léon

J2EE - Introduction. Développement web - Java. Plan du chapitre

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Toutatice, une plateforme Portail/ECM open source pour la publication de contenus et de services métiers

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

Java Aspect Components (JAC)

Prise en compte des ressources dans les composants logiciels parallèles

10. Base de données et Web. OlivierCuré

L exploitation des rapports de vérifications réglementaires : quels enjeux, quelle solution?

Applications orientées données

> + Consultant / Architecte JEE Indépendant. Fabien GUIBERT 34 ans, 11 ans d expérience d expérience COMPETENCES / DOMAINES METIERS

REQUEA. v PD 20 mars Mouvements d arrivée / départ de personnels Description produit

Yassine EL AZRI. Professionnelles. Consultant ERP Microsoft Dynamics AX. Consultant ERP Microsoft Dynamics AX Depuis octobre 2012

Création d une application JEE

Messagerie asynchrone et Services Web

Informatique générale et éditeurs

Ociensa Technologies.

Simplification de la présentation

Master Sciences et Technologies Mention Informatique Spécialité E-Services en Alternance

Formation : Langues : Types d Intervention et Secteurs d Activité :

Introduction MOSS 2007

molis result portal Description fonctionnelle La structure système Configuration système requise Architecture du système

Christophe NIGAUD Freelance Société Actusoft SARL au capital de 1 000

NANTES ANGERS RENNES

Paul FLYE SAINTE MARIE

Générer du code à partir d une description de haut niveau

PROPOSITION. One ID. Références développement. Version 1.0 Juillet One ID

Les frameworks au coeur des applications web

DOSSIER DEVELOPPEUR Projet CAR

arcopole Studio Version 3.1

PROSOP : un système de gestion de bases de données prosopographiques

Manuel d utilisation du site web de l ONRN

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

NOVA BPM. «Première solution BPM intégr. Pierre Vignéras Bull R&D

Mardi 9 septembre

Transcription:

Spring par l exemple Gary Mak Traduction : Relecture technique : Hervé Soulard Éric Hébert, Architecte Java JEE

Table des matières À propos de l auteur... Introduction... Public du livre... Organisation du livre... Conventions typographiques... Prérequis... Télécharger le code... Contacter l auteur... VII IX X X 1 Inversion de contrôle et conteneurs... 1 1.1 Utiliser un conteneur pour gérer des composants... 2 1.2 Utiliser un localisateur de service pour simplifier la recherche... 8 1.3 Appliquer l inversion de contrôle et l injection de dépendance... 10 1.4 Comprendre les différents types d injections de dépendance... 12 1.5 Configurer un conteneur à partir d un fichier de configuration... 16 1.6 En résumé... 19 2 Introduction au framework Spring... 21 2.1 Le framework Spring... 22 2.2 Installer le framework Spring... 28 2.3 Configurer un projet Spring... 30 2.4 Installer Spring IDE... 32 2.5 Utiliser les outils de gestion des beans de Spring IDE... 34 2.6 En résumé... 40 3 Configuration des beans... 41 3.1 Configurer des beans dans le conteneur Spring IoC... 42 3.2 Instancier le conteneur Spring IoC... 46 3.3 Lever les ambiguïtés sur le constructeur... 49 3.4 Préciser des références de beans... 52 3.5 Contrôler les propriétés par vérification des dépendances... 56 3.6 Contrôler les propriétés avec l annotation @Required... 59 3.7 Lier automatiquement des beans par configuration XML... 61 3.8 Lier automatiquement des beans avec @Autowired et @Resource... 66 3.9 Hériter de la configuration d un bean... 72

IV Table des matières 3.10 Affecter des collections aux propriétés de bean... 75 3.11 Préciser le type de données des éléments d une collection... 82 3.12 Définir des collections avec des beans de fabrique et le schéma util... 84 3.13 Rechercher les composants dans le chemin d accès aux classes... 87 3.14 En résumé... 92 4 Fonctions élaborées du conteneur Spring IoC... 95 4.1 Créer des beans en invoquant un constructeur... 96 4.2 Créer des beans en invoquant une méthode statique de fabrique... 99 4.3 Créer des beans en invoquant une méthode d instance de fabrique... 100 4.4 Créer des beans en utilisant un bean de fabrique Spring... 102 4.5 Déclarer des beans correspondant à des champs statiques... 104 4.6 Déclarer des beans correspondant aux propriétés d un objet... 106 4.7 Fixer les portées de bean... 108 4.8 Modifier l initialisation et la destruction d un bean... 110 4.9 Rendre les beans conscients de l existence du conteneur... 116 4.10 Créer des postprocesseurs de beans... 118 4.11 Externaliser les configurations de beans... 122 4.12 Obtenir des messages textuels multilingues... 124 4.13 Communiquer à l aide des événements d application... 127 4.14 Enregistrer des éditeurs de propriétés dans Spring... 129 4.15 Créer des éditeurs de propriétés... 133 4.16 Charger des ressources externes... 134 4.17 En résumé... 138 5 Proxy dynamique et Spring AOP classique... 139 5.1 Problèmes associés aux préoccupations transversales non modularisées... 141 5.2 Modulariser les préoccupations transversales avec un proxy dynamique... 148 5.3 Modulariser les préoccupations transversales avec des greffons Spring classiques... 155 5.4 Désigner des méthodes avec des points d action Spring classique... 164 5.5 Créer automatiquement des proxies pour les beans... 167 5.6 En résumé... 169 6 Spring 2.x AOP et prise en charge d AspectJ... 171 6.1 Activer la prise en charge des annotations AspectJ dans Spring... 172 6.2 Déclarer des aspects avec des annotations AspectJ... 175 6.3 Accéder aux informations du point de jonction... 181 6.4 Préciser la précédence des aspects... 182 6.5 Réutiliser des définitions de points d action... 184 6.6 Écrire des expressions AspectJ de point d action... 186 6.7 Introduire des comportements dans des beans... 191 6.8 Introduire des états dans des beans... 194 6.9 Déclarer des aspects avec des configurations XML... 197

Table des matières V 6.10 Tisser des aspects AspectJ au chargement dans Spring... 200 6.11 Configurer des aspects AspectJ dans Spring... 205 6.12 Injecter des beans Spring dans des objets de domaine... 207 6.13 En résumé... 210 7 Prise en charge de JDBC... 213 7.1 Problèmes associés à l utilisation directe de JDBC... 214 7.2 Utiliser un template JDBC pour la mise à jour... 221 7.3 Utiliser un template JDBC pour interroger une base de données... 226 7.4 Simplifier la création d un template JDBC... 232 7.5 Utiliser le template JDBC simple avec Java 1.5... 234 7.6 Utiliser des paramètres nommés dans un template JDBC... 238 7.7 Modéliser les opérations JDBC avec des objets élémentaires... 240 7.8 Gérer les exceptions dans le framework Spring JDBC... 244 7.9 En résumé... 250 8 Gestion des transactions... 251 8.1 Problèmes associés à la gestion des transactions... 252 8.2 Choisir une implémentation de gestionnaire de transactions... 258 8.3 Gérer les transactions par programmation avec l API du gestionnaire de transactions... 260 8.4 Gérer les transactions par programmation avec un template de transaction... 262 8.5 Gérer les transactions par déclaration avec Spring AOP classique... 265 8.6 Gérer les transactions par déclaration avec des greffons transactionnels... 268 8.7 Gérer les transactions par déclaration avec l annotation @Transactional... 270 8.8 Fixer l attribut transactionnel de propagation... 271 8.9 Fixer l attribut transactionnel d isolation... 277 8.10 Fixer l attribut transactionnel d annulation... 285 8.11 Fixer les attributs transactionnels de temporisation et de lecture seule... 286 8.12 Gérer les transactions avec le tissage au chargement... 288 8.13 En résumé... 291 9 Prise en charge de l ORM... 293 9.1 Problèmes associés à l utilisation directe des frameworks ORM... 294 9.2 Configurer des fabriques de ressources ORM dans Spring... 306 9.3 Rendre des objets persistants avec les templates ORM de Spring... 312 9.4 Rendre des objets persistants avec les sessions contextuelles d Hibernate... 319 9.5 Rendre des objets persistants avec l injection de contexte de JPA... 322 9.6 En résumé... 325 10 Framework Spring MVC... 327 10.1 Développer une application web simple avec Spring MVC... 328 10.2 Associer des requêtes à des gestionnaires... 340 10.3 Intercepter des requêtes avec des intercepteurs de gestionnaire... 344

VI Table des matières 10.4 Déterminer les paramètres régionaux de l utilisateur... 347 10.5 Externaliser les messages dépendant de la localisation... 350 10.6 Déterminer les vues d après leur nom... 351 10.7 Associer des exceptions aux vues... 355 10.8 Construire des objets ModelAndView... 357 10.9 Créer un contrôleur avec une vue paramétrée... 359 10.10 Gérer des formulaires avec des contrôleurs... 361 10.11 Gérer les formulaires multipages... 374 10.12 Regrouper plusieurs actions dans un contrôleur... 383 10.13 Créer des vues Excel et PDF... 389 10.14 Développer des contrôleurs avec des annotations... 393 10.15 En résumé... 401 11 Intégration avec d autres frameworks web... 403 11.1 Accéder à Spring depuis des applications web génériques... 404 11.2 Intégrer Spring à Struts 1.x... 409 11.3 Intégrer Spring à JSF... 416 11.4 Intégrer Spring à DWR... 420 11.5 En résumé... 424 12 Prise en charge des tests... 427 12.1 Créer des tests avec JUnit et TestNG... 429 12.2 Créer des tests unitaires et des tests d intégration... 434 12.3 Effectuer des tests unitaires sur des contrôleurs Spring MVC... 443 12.4 Gérer des contextes d application dans les tests d intégration... 448 12.5 Injecter des fixtures de test dans des tests d intégration... 455 12.6 Gérer des transactions dans les tests d intégration... 459 12.7 Accéder à une base de données dans des tests d intégration... 465 12.8 Utiliser les annotations communes de Spring pour les tests... 469 12.9 En résumé... 472 Index... 473