TP SPRING. https ://lipn.univ-paris13.fr/ fortier/enseignement/spring/tp/



Documents pareils
TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Application web de gestion de comptes en banques

Compte Rendu d intégration d application

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

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

Bases Java - Eclipse / Netbeans

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

Création d une application JEE

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

1. Base de données SQLite

I4 : Bases de Données

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Tutoriel d installation de Hibernate avec Eclipse

CREATION WEB DYNAMIQUE

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. A308, Université de Paris 13

TP1. Outils Java Eléments de correction

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

1. Installation d'un serveur d'application JBoss:

Tp 1 correction. Structures de données (IF2)

Web Tier : déploiement de servlets

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

Pratique et administration des systèmes

Une introduction à la technologie EJB (2/3)

TP1 : Initiation à Java et Eclipse

Cours en ligne Développement Java pour le web

Mise en œuvre des serveurs d application

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

APIs de table pour SQL Server

Introduction à JDBC. Accès aux bases de données en Java

Alfstore workflow framework Spécification technique

Programmation Par Objets

Cours 1: Java et les objets

Applet pour visualiser les variables «automate» notifiées

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC

Programmation par composants (1/3) Programmation par composants (2/3)

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

DEVAKI NEXTOBJET PRESENTATION. Devaki Nextobjects est un projet sous license GNU/Public.

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

OpenPaaS Le réseau social d'entreprise

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Projet Java EE Approfondi

Premiers Pas en Programmation Objet : les Classes et les Objets

BIRT (Business Intelligence and Reporting Tools)

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Quick Start Installation de MDweb version 2.3

TP Programmation Java / JDBC / Oracle

Chapitre 10. Les interfaces Comparable et Comparator 1

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Java DataBaseConnectivity

Les frameworks au coeur des applications web

Application BdD et JDBC. Introduction 1/28. I Dans tout les cas, une seule problématique. I Quelques alternatives :

Environnements de développement (intégrés)

Accès aux bases de données

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

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

TP2 : Client d une BDD SqlServer

Construction d'une application MVC distribuée avec Spring Remoting. Partie 1 : HttpInvoker, Hessian, Burlap, RMI

EXA1415 : Annotations

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

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.

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

Programmation par les Objets en Java

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

Initiation à JAVA et à la programmation objet.

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

PROJET 1 : BASE DE DONNÉES REPARTIES

Introduction à Eclipse

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Cours Bases de données 2ème année IUT

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

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

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

Création d un service web avec NetBeans 5.5 et SJAS 9

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

UML et les Bases de Données

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Objectifs du TP : Initiation à Access

TD/TP PAC - Programmation n 3

DOSSIER DEVELOPPEUR Projet CAR

Nouveautés Ignition v7.7

Devenez un véritable développeur web en 3 mois!

2 Chapitre 1 Introduction

Encryptions, compression et partitionnement des données

Glassfish dans le milieu médical. Sun Aquarium Paris 26 Juin 2009 Jacky Renno

RMI le langage Java XII-1 JMF

contact@nqicorp.com - Web :

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Remote Method Invocation (RMI)

CQP Développeur Nouvelles Technologies (DNT)

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Le langage SQL (première partie) c Olivier Caron

Transcription:

Institut Galilée Année 2015-2016 TP SPRING Programmation et Logiciels sûrs Master 2 PLS Résumé L objectif de ce TP est d être capable de réaliser une application Java de gestion de location de véhicules,voiture ou camion, à l aide du framework Spring. Il s agit de gérer des individus et un parc de véhicules. L application devra permettre, entre autres, de : de lister les véhicules du parc de lister les individus ayant loué un véhicule de permettre à des individus d emprunter et de rendre des véhicules 1 Pré-requis 1.1 L environnement de développement Pour ce TP, l environnement de développement utilisé est Netbeans, entre autre pour le fait que l IDE intègre le moteur de base de données Derby. Cet environnement est disponible dans les salles de TP de Galilée. Pour le chapitre JDBC, il est nécessaire d utiliser la base Derby intégrée à Glassfish. Dans tous les cas, le lecteur pourra trouver une version Linux de ces applications à cette adresse : https ://lipn.univ-paris13.fr/ fortier/enseignement/applications/ 1.2 Les librairies nécessaires Les librairies nécessaires sont téléchargeables à cette adresse : https ://lipn.univ-paris13.fr/ fortier/enseignement/spring/tp/ Il s agit : de certaines librairies Spring : org.springframework.context-3.0.6.release.jar org.springframework.core-3.0.6.release.jar org.springframework.beans-3.0.6.release.jar... de la librairie Apache de journalisation : commons-logging-1.1.1.jar de la librairie Derby permettant d accéder aux données 1.3 La base de données On utilise une base de données derby, installée avec Glassfish. Avant tout, il faut créer la base de nom "location", l utilisateur "location" et comme mot de passe "mdp" (par exemple) Voila les requêtes SQL de base à exécuter pour créer les schéma et la première table : create schema location; create table location.personne ( personne_id integer generated always as identity primary key, nom varchar(20), age numeric ); insert into location.personne (nom,age) values ( michael, 25); insert into location.personne (nom,age) values ( christophe, 30); 1.4 Tests unitaires Les exercices peuvent être testés via des classes Main, mais on préfèrera utiliser des tests unitaires, déjà intégrés dans l environnement Netbeans (Cf. Annexes). 1

2 Etape 1 : Une première application Spring Le but de cette mini-application est de créer des objets dont les propriétés initiales sont stockées dans le fichier de configuration de Spring. Ce travail s appuye sur le chapitre "Bean" du cours. Créer un projet Java Dans les propriétés du projet, ajouter toutes les librairies Spring nécessaires (Cf. pré-requis) Créer un package «metier» dans lequel se trouve une classe de nom Personne qui possède les attributs : private String nom ; // nom de l individu private int age ; // age de l individu Créer les accesseurs de la classe Personne Ajouter les 3 méthodes suivantes : TP/BEAN/src/metier/Personne.java // Affichage des informations de l individu public String tostring() { return "nom=[" + this.nom + "], age=[" + this.age + "]"; // Methodes appelees lors de l initialisation/suppression du bean public void init() { System.out.println("init personne [" + this.tostring() + "]"); public void close() { System.out.println("destroy personne [" + this.tostring() + "]"); En s appuyant sur le cours, créer le fichier de propriétés applicationcontext.xml à la racine des sources du projet (ou ailleurs dans le Classpath) En s appuyant sur le cours, créer une classe Main à la racine des sources permettant de lire le fichier de configuration de Spring et d afficher les informations. Vérifier le comportement de l application Ajouter dans la configuration de Spring un 2ème bean personne2 Ajouter dans la classe de test Main plusieurs appels d affichage de personne2 Analyser les résultats de l exécution : créations d objets, appels de init(), close() Créer une classe voiture possédant les attributs marque, type et un attribut emprunteur de type Personne. En plus du constructeur par défaut, créer un constructeur de la forme : Voiture(String marque,string type,personne emprunteur) Cette fois-ci, la méthode d affichage devient : TP/BEAN/src/metier/Voiture.java public String tostring() { return "Voiture : marque=[" + this.marque + "] type=[" + this.type + "] emprunteur=[" +this.emprunteur + "]"; Ajouter au fichier de configuration Spring le bean "voiture1" du cours Modifier la classe Main pour afficher le bean voiture1 3 IoC Analyser les résultats de l exécution : créations d objets, appels de init(), close() Il s agit à présent de mettre en exergue les avantages de l inversion de contrôle offert par Spring. Dans un nouveau projet Java, écrire les 4 classes de l étude de cas simple du cours portant sur la location de véhicules Ecrire la classe de tests Main et constater le bon fonctionnement de l application, en modifiant le type de véhicule Dans un nouveau projet, ajouter l intégration de Spring (modification de la classe Personne, applicationcontext, Main...) Analyser/comparer les résultats de l exécution 2

4 AOP : Gestion des journaux Le but de cette mini-application est de créer un système de gestion des journaux en associant Spring à la programmation par aspect. Créer un projet Java en important toutes les librairies Spring disponibles Ecrire l exemple du cours sans AOP : classe Personne, configuration Spring, et classe de test Vérifier les résultats de l exécution Intégrer les aspects éviqués en cours dans la configuration Spring Ecrire la classe MonLogger Analyser/comparer les résultats de l exécution Modifier la classe MonLogger pour adapter vos journaux (écriture dans un fichier de logs par exemple) 5 JDBC : Avantages de Spring Le but de cette mini-application est de vérifier les avantages de Spring JDBC : la séparation des couches, la gestion des connexions... Il est nécessaire d utiliser la base de données Derby (Cf. pré-requis). 5.1 Méthode classique Créer un projet Java en important toutes les librairies Spring disponibles En vous inspirant des exercices précédent, créer la classe Personne A l aide du cours, créer la classe Derby de connexion à la base Ecrire les classes d Exception AgeNegativeException et PersonneNotFoundException Ajouter une méthode d insertion d une personne 5.2 JDBCTemplate Tester le projet, les méthodes d accès aux données (find, update...), les exeptions Créer les packages dao et métier A l aide du cours, écrire les interfaces IPersonneDao, IPersonneMetier, et leurs implémentations Ecrire le fichier de configuration de Spring Ecrire la classe de tests permettant de valider la mise à jour d un individu Ajouter les méthodes de listing et d insertion d une personne 6 Application de gestion de location de véhicules Cette application se base sur les exercices précédents. Les données personnes et véhicules sont stockées dans une base Derby. Dans un premier temps et pour simplifier la mise en oeuvre, les véhicules n ont pas besoin d être typés (voiture, camion, moto), et ils ne sont loués qu à un seul individu à la fois. Récupérer et lancer le projet contenu dans l archive Application.tar.gz Créer l interface dao IVehiculeDao contenant par exemple les prototypes louer(), retourner(), is_loue() Créer l interface métier IVehiculeMetier permettant de gérer les véhicules Implémenter les classes/méthodes nécessaires à la gestion : d insertion/suppression de voitures d emprunt/retour de voitures de lister les voitures du parc (louées ou non) de lister les individus ayant loués une voiture... Créer les classes de tests avec JUnit Créer une application interactive en ligne de commande permettant d effectuer chaque opération Intégrer un système non intrusif de journalisation des opérations précédentes 3

7 Hibernate Cette partie nécessite d avoir déjà utilisé le framework Hibernate (Cf. http ://lipn.univparis13.fr/ fortier/enseignement/hibernate/). De plus, la base de donnés location doit être en place (Cf. pré-requis) Créer un projet Spring avec les librairies nécessaires Ajouter les librairies Hibernate Créer les fichiers de mapping Personne et Voiture (à la main ou à l aide des outils hibernate intégrés à Spring) A l aide du cours, créer le fichier de configuration de Spring en intégrant les propriétés d Hibernate Ecrire les interfaces métier et DAO permettant dans un premier d effectuer des recherches de personnes Implémenter les interfaces en utilisant le template Spring Hibernate Créer les tests unitaires testant les fonctionnalités de recherche de personnes Continuer le projet en intégrant les fonctionnalités de gestion de location 4

8 Annexes 8.1 Tests unitaires - JUnits Un test unitaire est une méthode permettant de tester une partie code (appelé unité). Le test consiste a vérifier que le retour de l exécution de la portion de code correspond a ce que l on attend. Il est exécuté indépendamment du programme en créant un environnement d exécution spécifique à la portion de code. Cela permet d eviter de devoir recompiler tout un logiciel pour vérifier la correction d un bug des fois assez difficile à déclencher "manuellement" ou pour tester des fonctionnalités profondes dans le logiciel. JUnits est un framework pour générer des tests unitaires qui est intégré à Netbeans. Pour générer un test, il suffit de cliquer "Outils" "Create Junits Tests" (sélectionnez Junit 4.x), puis de choisir la classe contenant les méthodes à tester. Tous les tests de chaque méthode sont créés. Il suffit à présent de modifier ces tests pour vérifier la validité des méthodes. TP/JUNITS/test/ClasseTest.java @Test public void testfairequelquechose() { System.out.println("Methode fairequelquechose : uppercase()"); // Creation d une instance de la classe testee Classe instance = new Classe(); // Initialisation du resultat attendu String expresultat="test2"; // Lancement du test de la methode String resultat = instance.fairequelquechose("test"); // Resultat du test de la methode fairequelquechose assertequals(expresultat,resultat); 8.2 Installer Netbeans et Glassfish Dans le cas où l on se trouve sur une machine ne disposant pas de Netbeans ou Glassfish, il peut suivre les procédures suivantes qui lui permettront d effectuer le TP. Pour netbeans, décompiler l archive située à : http ://www-lipn.univ-paris13.fr/ fortier/enseignement/applications/netbeans-6.7.1_fr.tar.gz L application se lance avec le commande bin/netbeans (pensez à régler les droits d execution). Pour glassfish, charger l archive disponible : http ://www-lipn.univ-paris13.fr/ fortier/enseignement/applications/glassfish-installer-v2.1.1-b31g-linux-ml.jar Entrez les commandes : java -Xmx256m -jar glassfish-installer-v2.1.1-b31g-linux-ml.jar cd glassfish chmod -R +x lib/ant/bin./lib/ant/bin/ant -f setup.xml 5