29/01/09SpringFramework1 SpringFramework Alice GARCIA Fabien FAGOAGA Option Génie Logiciel 3 ème année ENSEIRB.

Slides:



Advertisements
Présentations similaires
Un environnement de développement éducatif
Advertisements

Présentation de frameworks J2EE
LES NOMBRES PREMIERS ET COMPOSÉS
[number 1-100].
Qualité du Premier Billot. 2 3 Défauts reliés à labattage.
1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
Distance inter-locuteur
Département Édition - Intégration SEMINAIRE SOA Migration du canal Esup MonDossierWeb Olivier Ziller / Charlie Dubois Université Nancy 2 16 octobre 2007.
CASTEL Dennis SARZEAUD Floriane TAKAHASHI Atsushi.
Les Prepositions.
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
JXDVDTEK – Une DVDthèque en Java et XML
Guillaume KRUMULA présente Exposés Système et Réseaux IR3 Mardi 5 Février 2008.
Présentation de l’application « Livret personnel de compétences »
Initiation et perfectionnement à lutilisation de la micro-informatique Publier des films sur DailyMotion (sur Mac et sur PC) ©Yves Roger Cornil
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
La diapo suivante pour faire des algorithmes (colorier les ampoules …à varier pour éviter le « copiage ») et dénombrer (Entoure dans la bande numérique.
Atelier Portail SAP Durée : 2h.
بسم الله الرحمن الرحيم. Institut Supérieure des Etudes Technologiques de Kébili.
User management pour les entreprises et les organisations Auteur / section: Gestion des accès.
Présentation des frameworks pour Java EE
Injection de dépendances
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Développement d’applications web
Page 1 Introduction à ATEasy 3.0 Page 2 Quest ce quATEasy 3.0? n Ensemble de développement très simple demploi n Conçu pour développer des bancs de test.
Struts 1 & 2 Tlohi ibtissam Tabit boutaina Ilias bouras
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
18/05/ Utiliser le cahier de texte en ligne avec lapplication SPIP Adresse du site du lycée :
Projet JAVA EE Approfondi
Laboratoire d'Informatique de l’Université de Franche-Comté
Configuration de Windows Server 2008 Active Directory
Recommandations et procédure d’attribution de DOI
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Académie de Créteil - B.C Quest-ce quune Inscription 1)1 action + 1 stagiaire + 1 client 2)Parcours individuel (avec son Prix de Vente) 3)Un financement.
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
LES NOMBRES PREMIERS ET COMPOSÉS
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Hibernate Search Réunion dunité – 23/10/2008 Erik Kimmel.
Développement d’application web
@SSR – Installation des applications eduscol.education.fr/securite - février 2007 © Ministère de l'Éducation nationale, de l'Enseignement supérieur et.
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
Projet Génie Logiciel & UML, Bases de Données & Interfaces
1 Xooctory – Projet GL Aurélie COHE Fabien FAGOAGA Alice GARCIA Matthieu JOUBERT Christelle MAZEREAU Client : Xavier HANIN.
Xooctory – Projet GL Aurélie COHE Fabien FAGOAGA
Groupe : Marc BENSILHE, Guillaume GOURMENT et Paul FLYE SAINTE MARIE
GPA789 Analyse et conception orientées objet 1 Professeur: Tony Wong, Ph.D., ing. Chapitre 6 Correspondance UML et C++
1. 2 PLAN DE LA PRÉSENTATION - SECTION 1 : Code HTML - SECTION 2.1. : CSS (Méthode 1) - SECTION 2.2. : CSS (Méthode 2) - SECTION 3 : JavaScript - SECTION.
Tournoi de Flyball Bouin-Plumoison 2008 Tournoi de Flyball
Notre calendrier français MARS 2014
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Proxy et plus Cnam Paris jean-michel Douin, douin au cnam point fr
Projet de Master première année 2007 / 2008
LA GESTION COLLABORATIVE DE PROJETS Grâce aux outils du Web /03/2011 Académie de Créteil - Nadine DUDRAGNE 1.
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
Xooctory.
Xooctory. Plan Présentation du projet Architecture de l'application.
CALENDRIER-PLAYBOY 2020.
Guide de paramétrage RRDI pour CLM v3
Outil de gestion des cartes grises
Les Chiffres Prêts?
FRANÇOIS-XAVIER PARÉ Bibliothécaire BUREAU DES SYSTÈMES 11 novembre 2009 L A BARRE D’OUTILS L IB X : L A RECHERCHE À UN CLIC Merci à Lucie Geoffroy et.
Tutorat en bio-informatique
Réaliser par: Sadok Amel Cheboui hassiba
Master 1 SIGLIS Intégration des données dans l’entreprise Stéphane Tallard JDBC: Java Database Connectivity Master 1 SIGLIS1JDBC.
L. Gurret – M. Herve – P. Mignon – J. Prarioz. Introduction  Dernière étape d’analyse  Cahier des charges, spécifications et conception orientée objet.
Parquet Geoffrey 3 ARIL EXIA.CESI ARRAS. Présentation du MLD Présentation de la persistance Présentation récapitulatif du projet JSP/SERVLET MVC Cycle.
Transcription de la présentation:

29/01/09SpringFramework1 SpringFramework Alice GARCIA Fabien FAGOAGA Option Génie Logiciel 3 ème année ENSEIRB

29/01/09 SpringFramework 2 Plan Présentation générale de Spring Présentation générale de Spring Récupération du framework Récupération du framework Utilisation de Spring Utilisation de Spring Notre utilisation de Spring : Xooctory Notre utilisation de Spring : Xooctory Un exemple concret Un exemple concret Webographie Webographie

29/01/09 SpringFramework 3 Plan Présentation générale de Spring Présentation générale de Spring Récupération du framework Utilisation de Spring Notre utilisation de Spring : Xooctory Un exemple concret Webographie

29/01/09 SpringFramework 4 Présentation générale (1/2) Définition : (par Erick Gollot) Infrastructure similaire à un serveur dapplication J2EE. Prend en charge la création et la mise en relation dobjets Utilisation de fichiers de configuration qui décrivent les objets à fabriquer et les relations de dépendances entre ces objets Permet linjection de dépendances

29/01/09 SpringFramework 5 Présentation générale (2/2) Site officiel : Description de lAPI : api/index.html

29/01/09 SpringFramework 6 Plan Présentation générale de Spring Récupération du framework Récupération du framework Utilisation de Spring Notre utilisation de Spring : Xooctory Un exemple concret Webographie

29/01/09 SpringFramework 7 Récupération du projet Adresse de téléchargement : Dernière version : 3.0.0M1 (5 déc 2008) Version précédente : (31 oct 2008) Requière Java 1.4

29/01/09 SpringFramework 8 Composition de larchive (1/3) dist : Bibliothèques des différents modules de Spring lib : Bibliothèques requises pour compiler ou utiliser Spring samples : Applications de démonstration src : Code source de Spring test : Classes de tests de Spring

29/01/09 SpringFramework 9 Composition de larchive (2/3) Le dossier dist : spring.jar : le framework complet Le dossier dist/modules : spring-core.jar spring-beans.jar spring-dao.jar spring-hibernate.jar spring-jdbc.jar spring-web.jar

29/01/09 SpringFramework 10 Composition de larchive (3/3) Le dossier lib : ant compilation hibernate tomcatserveur Web hsqldbSGBD junit jrubyimpl. de linterpréteur Ruby en Java log4j mavengestion de production de projets Java strutsframework pour dév. appli. Web

29/01/09 SpringFramework 11 Plan Présentation générale de Spring Récupération du framework Utilisation de Spring Utilisation de Spring Notre utilisation de Spring : Xooctory Un exemple concret Webographie

29/01/09 SpringFramework 12 Format des fichiers de config Fichier de configuration au format XML < <beans xmlns=" xmlns:xsi=" xsi:schemaLocation="

29/01/09 SpringFramework 13 La balise bean (1/6) Attributs possibles : id : identifiant du bean class : classe correspondante name : liste des noms donné au bean scope : type dinstanciation (par défaut : singleton) singleton : même instance de l'objet fournie à chaque demande prototype : instance différente à chaque fois lazy-init : moment de linstanciation (par défaut : false) true : bean instancié lorsque lon y accède (getBean) false : bean instancié dès louverture de la session <bean id="monBean" class="fr.enseirb.it308.spring.unBean" name="monBeanAlias,aliasMonBean" scope="singleton"/>

29/01/09 SpringFramework 14 La balise bean (2/6) La balise constructor-arg : injecter des propriétés via le constructeur Spécification des arguments via leur index public class Plage { private String nom; private Integer temperatureEau; public Plage(String nom, Integer temperatureEau) { this.nom = nom; this.temperatureEau = temperatureEau; }

29/01/09 SpringFramework 15 La balise bean (3/6) La balise constructor-arg : Spécification des arguments via leur index public class Plage { public Plage(String nom, Integer temperatureEau) { } public Plage(String nom, String departement) { }

29/01/09 SpringFramework 16 La balise bean (4/6) La balise props : gérer les propriétés de type Properties Mon Application Nous application.nom=Mon Application application.version=1.0.0 application.auteur=Nous Fichier propriete.properties :

29/01/09 SpringFramework 17 La balise bean (5/6) La balise property : permet de déclarer un besoin en terme de configuration Exemples dattributs possibles : ref : injection dun bean dans un autre value list Nécessité davoir des getter et setter pour ces propriétés

29/01/09 SpringFramework 18 La balise bean (6/6) public class Voiture { private Roue roue; public Voiture() { … } public void setRoue(Roue roue) { this.roue = roue; } public Roue getRoue() { return roue; } public interface Roue { … } public class Michelin implements Roue { … } public class GoodYear implements Roue { … }

29/01/09 SpringFramework 19 Les autres fonctionnalités (1/2) La balise import : permet dimporter un fichier de configuration Spring dans un autre

29/01/09 SpringFramework 20 Les autres fonctionnalités (2/2) Possibilité dimporter des informations depuis un fichier Properties : classpath:datasource.properties <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> ${jdbc.driver.class} ${jdbc.url} ${jdbc.user} ${jdbc.password} Utilisation des données :

29/01/09 SpringFramework 21 Lecture des informations (1/2) Méthodes utilisées : ClassPathRessource("nom_fichier.xml") Crée un "loader" vers le fichier XML XmlBeanFactory(ClassPathRessource res) Charge les définitions des beans getBean("nom du bean") Récupère une instance de la classe correspondante au bean

29/01/09 SpringFramework 22 Lecture des informations (2/2) Lecture des fichiers de configuration depuis notre code ClassPathResource res = new ClassPathResource("spring-config.xml"); XmlBeanFactory factory = new XmlBeanFactory(res); Voiture voiture = (Voiture) factory.getBean("voiture");

29/01/09 SpringFramework 23 Le module spring-hibernate (1/2) Spring inclue Hibernate : spring-hibernate.jar Mapping des classes dans un fichier de configuration <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> … org.xoocode.xooctory.web.directory.security.model.AdministeredEntityModel org.xoocode.xooctory.web.directory.security.model.ApplicationModel org.xoocode.xooctory.web.directory.security.model.GroupModel org.xoocode.xooctory.web.directory.security.model.LocalUserModel org.xoocode.xooctory.web.directory.security.model.PermissionModel org.xoocode.xooctory.web.directory.security.model.ProfileModel org.xoocode.xooctory.web.directory.security.model.RoleModel org.xoocode.xooctory.web.directory.security.model.UserModel …

29/01/09 SpringFramework 24 Le module hibernate (2/2) La classe HibernateDaoSupport : Utilisé pour laccès à des objets Hibernate Utilise la classe HibernateTemplate qui possède une SessionFactory Instanciation de la SessionFactory à partir dun bean « sessionFactory » contenant les informations nécessaires à la connexion à la base de données (driver, url, utilisateur, mot de passe)

29/01/09 SpringFramework 25 Connexion à une BDD (1/3) Accès à la base de données en utilisant un ensemble de DAO Chaque DAO hérite de la classe HibernateDaoSupport : Accès à la base par les méthodes de cette classe public class HbGroupDAO extends HibernateDaoSupport = false) public AdministeredEntityModel add(GroupModel group) { String id = (String) getHibernateTemplate().save(group); group.setId(id); return group; } … }

29/01/09 SpringFramework 26 Connexion à une BDD (2/3) Chaque DAO va avoir un bean dans un fichier de configuration Instanciation d'une SessionFactory <bean id="permissionDAO" class="org.xoocode.xooctory.web.directory.security. manager.hibernate.HbPermissionDAO">

29/01/09 SpringFramework 27 Connexion à une BDD (3/3) <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> … … … La propriété SessionFactory des beans des DAO fait référence au bean SessionFactory

29/01/09 SpringFramework 28 Plan Présentation générale de Spring Récupération du framework Utilisation de Spring Notre utilisation de Spring : Xooctory Notre utilisation de Spring : Xooctory Un exemple concret Webographie

29/01/09 SpringFramework 29 Notre utilisation : Xooctory Dans le cadre du projet GL Xooctory, utilisation de Spring : Pour choisir une implémentation Pour la connexion à une base de données

29/01/09 SpringFramework 30 Choix de limplémentation (1/3) Problème posé : Pouvoir choisir entre 2 implémentations de la sécurité, l'une utilisant LDAP, l'autre utilisant une base de données En Java : 2 services implémentant linterface SecurityManagementService Une instance de la bonne implémentation utilisée globalement dans lapplication : securityManagementService

29/01/09 SpringFramework 31 Choix de limplémentation (2/3) Configuration dans le fichier spring-config- security.xml Création de deux beans Beans de même nom Mise en commentaire du bean non utilisé : limplémentation non choisie <bean id="securityManagementService" class="org.xoocode.xooctory.web.directory.security.manager.triplesec. TriplesecSecurityManagementService" /> <bean id="securityManagementService" class="org.xoocode.xooctory.web.directory.security.manager.hibernate. HbSecurityManagementService"/>

29/01/09 SpringFramework 32 Choix de limplémentation (3/3) public class SecurityManagementServiceLocator { private static SecurityManagementService securityManagementService =getSpringConfig(); private static SecurityManagementService getSpringConfig() { ClassPathResource res = new ClassPathResource("spring-config-security.xml"); XmlBeanFactory factory = new XmlBeanFactory(res); SecurityManagementService securityManagementService = (SecurityManagementService) factory.getBean("securityManagementService"); return securityManagementService; } public static SecurityManagementService getSecurityManagementService () { return securityManagementService; } Pour instancier la variable globale : récupération du choix de l'implémentation

29/01/09 SpringFramework 33 Utilisation de spring-hibernate (1/4) Problème posé : Connexion à une base de données En Java : Des fichiers mappés correspondant aux tables de la base Des fichiers Java DAO pour accéder à la base de données

29/01/09 SpringFramework 34 Utilisation de spring-hibernate (2/4) Ajout des classes faisant l'objet d'un mapping dans le fichier de configuration spring-config-hb.xml … org.xoocode.xooctory.web.directory.security.model.AdministeredEntityModel org.xoocode.xooctory.web.directory.security.model.ApplicationModel org.xoocode.xooctory.web.directory.security.model.GroupModel org.xoocode.xooctory.web.directory.security.model.LocalUserModel org.xoocode.xooctory.web.directory.security.model.PermissionModel org.xoocode.xooctory.web.directory.security.model.ProfileModel org.xoocode.xooctory.web.directory.security.model.RoleModel org.xoocode.xooctory.web.directory.security.model.UserModel

29/01/09 SpringFramework 35 Utilisation de spring-hibernate (3/4) Chaque DAO hérite de la classe HibernateDaoSupport : Accès à la base par les méthodes de cette classe public class HbGroupDAO extends HibernateDaoSupport = false) public AdministeredEntityModel add(GroupModel group) { String id = (String) getHibernateTemplate().save(group); group.setId(id); return group; } … }

29/01/09 SpringFramework 36 Utilisation de spring-hibernate (4/4) Il faut donc instancier une SessionFactory : création d'un bean pour chaque DAO dans spring- config.xml Chaque bean possède une propriété SessionFactory récupérée à l'aide du bean SessionFactory présent dans spring-config-hb.xml <bean id="permissionDAO" class="org.xoocode.xooctory.web.directory.security. manager.hibernate.HbPermissionDAO">

29/01/09 SpringFramework 37 Plan Présentation générale de Spring Récupération du framework Utilisation de Spring Notre utilisation de Spring : Xooctory Un exemple concret Un exemple concret Webographie

29/01/09 SpringFramework 38 Un exemple concret Configuration dun Puissance4 Deux types daffichage : Mode console Mode graphique Passage de lun à lautre sans modification de code

29/01/09 SpringFramework 39 Plan Présentation générale de Spring Récupération du framework Utilisation de Spring Notre utilisation de Spring : Xooctory Un exemple concret Webographie Webographie

29/01/09 SpringFramework 40 Webographie