formation spring spécifique 1. sommaire historique, définition et architecture (p3) concept clé...
TRANSCRIPT
![Page 1: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/1.jpg)
Formation SpringSpécifique
1
![Page 2: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/2.jpg)
SOMMAIRE
• Historique, définition et architecture (p3) • Concept clé N°1 : injection de dépendances (p13)• DEV : Intégration Spring / JMS (p31)• DEV : Intégration Spring / Struts (p24) • Conclusion – ressources – Rappels J2EE (p46)
2
![Page 3: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/3.jpg)
Etape 1 : Introduction Spring
Historique
Définition
Architecture
3
![Page 4: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/4.jpg)
SPRING : Historique
Rod Johnson (2002)
Faire avec un simple bean (POJO) ce qui était seulement possible avec EJBs
Environnement J2SE et J2EE
Simplicité
Testabilité
Couplage faible. Programmation par interfaces
4
![Page 5: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/5.jpg)
Mission du Framework Spring
Nous pensons que: – J2EE devrait être plus facile à utiliser– Il est préférable de programmer à travers des interfaces plutôt qu’à
travers des classes. – La conception OO est plus importante qu’une toute technologie
d’implémentation, comme J2EE.– Trop d’exceptions à gérer en Java ! Et si un framework nous permettait
de mieux gérer les exceptions ?– Les tests sont essentiels. Et si un framework nous permettait de tester
facilement notre application.
Nous souhaitons que: – Spring soit un plaisir à utiliser– Votre code applicatif “ne dépende pas” des APIs Spring.– Spring n’entre pas en compétition avec de bonnes solutions existantes,
mais facilite l’intégration avec ces solutions.. (Par example, Hibernate est un bon outil de mapping O/R. Pourquoi en créer un autre ?.)
5
![Page 6: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/6.jpg)
SPRING : définition
Framework et conteneur léger, à injection de dépendance et orienté aspect.
– framework : permet configuration et création d'applications complexes à partir de composants réutilisables
– conteneur : Spring contient et manage cycle de vie des composants susceptibles d'être injectés
– léger : taille (2,8Mb) + surcharge JVM + non intrusif– à injection de dépendance : Spring vous injecte les composants
dont vous avez besoin = JNDI Reverse.– orienté aspect : permet séparation logique métier et services
techniques transversaux (Logs, Sécurité. Transaction..)
6
![Page 7: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/7.jpg)
Conteneurs Spring
Plusieurs implémentations de Conteneurs héritant de 2 interfaces principales
BeanFactory (org.springframework.beans.factory.BeanFactory)– Ex : XMLBeanFactory : définition beans dans XML– Convient si pb de ressources (Ex :tel portable)
ApplicationContext (org.springframework.context.ApplicationContext)– Extension de BeanFactory– Ex : ClassPathApplicationContext,FileSystemXMLApplicationContext – Messages, I18n, publication d'évènements à des listeners
7
![Page 8: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/8.jpg)
SPRING : architecture modulaire
Jusqu'où votre appli. sera orientée SPRING ?
8
![Page 9: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/9.jpg)
SPRING : Modules clés
Core : fonctions essentielles. Utilise fabrique de bean (conteneur) org.springframework.beans.factory.BeanFactory. Support de l'injection.
Application Context : ce qui permet de faire de Spring un Framework : support internationalisation (i18n), cycle de vie, validations + services entreprises : acces JNDI, integration EJB, scheduling + intégration velocity/Freemarker
AOP : Gère la séparation préocupations transversales techniques. Possibilité créez vos propres aspects. Intégration avec AspectJ et basés sur interfaces de l'AOP Alliance
DAO / JDBC : accès aux données (gestion exceptions).
ORM : intégration framework ORM (hibernate, iBatis, JPA, JDO). Rq : avec DAO, permet de donner DAO à plusieurs frameworks ORM.
9
![Page 10: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/10.jpg)
10
SPRING : Modules clés
JMX : possibilité d'exposer vos beans comme composants JMX (Java Management Extension). Monitoring des beans.
JCA : connecteur JEE. Intégration Spring avec mainframes, et autres système d'information (ERP,CRM, MOM...)
Spring MVC : Créer applications web Model-Vue-Controlleur avec Spring.
Portlets : Une page web = plusieurs portlets
Remoting : Accéder aux beans à travers le réseau. Intégration RMI, JAX-RPC, JAX-WS.
JMS : Intégration Java Messages Services
![Page 11: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/11.jpg)
SPRING : architecture modulaire
Exemple modules pour appli Struts/Hibernate
11
![Page 12: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/12.jpg)
SPRING : architecture modulaire
Exemple modules pour appli Struts/JMS
12
![Page 13: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/13.jpg)
Etape 2 : Injection de dépendances
Inversion de controle (IoC) et Injection de dép.
Sans injection : couplage fort entre objets
Avec injection : couplage faible
13
![Page 14: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/14.jpg)
Inversion de Contrôle (IoC)
IoC = Votre code partage avec un framework le flot d'éxécution d'un programme.
Exemple avec les listeners de SWING
IoC différent de Injection de dépendances...
14
![Page 15: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/15.jpg)
Sans injection
Pour travailler avec un objet, nous le crééons (en dur) avec les techniques suivantes
• New()
• JNDI Lookup
Cela créée un couplage (statique) fort entre l'objet demandeur et l'objet apellé.
15
![Page 16: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/16.jpg)
Exemple de couplage fort
16
![Page 17: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/17.jpg)
Problèmes couplage fort
Pas de 'Saxophone' sans 'Musicien'
Difficile de tester la Classe Musicien
Difficile de réutiliser la Classe Musicien
17
solutions1) Masquer l'implémentation avec Interfaces !2) Injection de code à l'exécution.
![Page 18: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/18.jpg)
Avec injection
Pour travailler avec un objet possédant un savoir-faire, nous déclarons une interface que l'objet doit implémenter.
• Spring injecte dynamiquement un objet implémentant cette interface. L'objet est déclaré dans un fichier xml de configuration, par défaut applicationContext.xml
Cela créée un couplage faible entre l'objet demandeur et l'objet apellé. Ils n'ont pas besoin de se connaître mutuellement.
18
![Page 19: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/19.jpg)
Exemple de couplage faible
19
Ici les classes sont indépendantes.
Couplage faible
![Page 20: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/20.jpg)
Déclaration Musicien et Saxophone
20
Fichier de configuration de Spring : applicationContext.xml
REFERENCE : http://static.springframework.org/spring/docs/2.5.x/reference/beans.html
![Page 21: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/21.jpg)
Lancement de l'Application
21
joue Vive le vent... : TOOT TOOT TOOTjoue Vive le vent... : TOOT TOOT TOOT
1)Chargement conteneur
3) Utilisation bean
2)Récupération bean
![Page 22: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/22.jpg)
Modification paramétrage...
22
Le musicien change d'instrument...
![Page 23: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/23.jpg)
Lancement de l'Application
23
joue Vive le vent... : PLINK PLINK PLINKjoue Vive le vent... : PLINK PLINK PLINK
1)Chargement conteneur
3) Utilisation bean
2)Récupération bean
![Page 24: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/24.jpg)
Intégration Struts / Spring
Valeur ajoutée et limite de Struts
Ce qu'apporte Spring à Stuts
Stratégie d'intégration : délégation de Proxy
24
![Page 25: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/25.jpg)
Atouts Struts / Spring
Struts apporte une couche MVC simple et bien connue des développeurs…
…mais struts ne gère pas le Modèle !!!
Spring apporte un accès simple en non intrusif à une couche métier performante
Struts + Spring = bon duo !
25
![Page 26: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/26.jpg)
Technique : délégation d'actions
Grace à la technique de ‘délégation d’actions’, il est possible d’avoir des classes étant à la fois des actions struts et des beans Spring.
L’idée est d’utiliser une classe spécifique ( org.springframework.web.struts.DelegatingActionProxy ) afin de déléguer à Spring la gestion de l’action struts.
Ces ‘nouvelles actions struts’ ont des capacités bien supérieures aux actions classiques, réduisant ainsi les faiblesses de Struts.
26
![Page 27: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/27.jpg)
Mise en oeuvre Struts + Spring
Dans la pratique, nous continuons à coder actions struts normalement. La seule différence est que , dans struts-config.xml, la classe de l’action est
org.springframework.web.struts.DelegatingActionProxy ,
<action path=‘/login’ name=‘loginForm’type=‘org.springframework.web.struts.DelegatingActionProxy ’parameter=‘method’
validate=‘false’input=‘/WEB-INF/jsp/login.jsp’><forward name=‘success’ path=‘/WEB-INF/jsp/login_success.jsp’><forward name=‘failure’ path=‘/WEB-INF/jsp/login_failure.jsp’></action>
27
![Page 28: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/28.jpg)
Mise en oeuvre Struts + Spring
Dans le fichier de configuration Spring actionservlet.xml, cette action est configurée de la façon suivante :<bean name=‘/login’ class=‘com.objis.demospring.LoginAction’><property name=‘userManager’ ><ref bean=‘userManager’></property></bean>
Spring réalise le lien avec l’action struts via le nom du bean, identique au chemin de l’action Struts ‘/login’
Ici LoginActrion est à la fois une action Struts complète (qui hérite de Action, DispatchAction…) et un bean Spring à part entière, bénéficiant de l’inversion de contrôle
Ici le service (userMAnager) est injecté à l’action. Ce service apellera le bean userDAO …
28
![Page 29: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/29.jpg)
Mise en oeuvre Struts + Spring
Dans Les ‘nouvelles actions Struts’ :
• ne lient plus la couche présentation à une implémentation donnée de la couche métier.
•sont plus facilement testables de manière unitaire du point de vue de l’accès au service.
•disposent d’un mécanisme d’interception; étant des beans Spring, nous pouvons utiliser la POA pour intercepter leurs méthodes. Cela peut permettre d’ajouter des mécanismes transversaux de sécurité, monitoring, logs, cache, transaction…
29
![Page 30: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/30.jpg)
2 avantages à retenir
Spring va gérer parfaitement le ‘M’ de MVC, ce que Struts ne gère pas.
Bonne pratique : injection d’objets dans l’action Struts (ex : service comme userMAnager) au lieu de passer par des new() ou des JNDI Lookup. Le Code plus modulaire avec meilleure testabilité.
30
![Page 31: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/31.jpg)
Intégration Spring / JMS
API JMS
Fournisseur ActiveMQ
JmsTemplate de Spring
Envoi/réception de message
31
![Page 32: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/32.jpg)
Présentation JMS
Java Messages Service ( API 1.1 et 1.0.2)
Envoyer / recevoir des messages
Messages Synchones / asynchrones
Queue (point-à-point) / Topics (abonnement)
Produits : WebSphere MQ (IBM), Active MQ (Apache)
32
![Page 33: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/33.jpg)
API JMS
javax.jms.Connection / ConnectionFactory javax.jms.Session
javax.jms.Destination (Queue ou bien Topic ?) javax.jms.Message / TextMessage
javax.jms.MessageProducer (méthode send(Msg)) javax.jms.MessageConsumer
33
![Page 34: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/34.jpg)
Queue / Topic
34
![Page 35: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/35.jpg)
Intégration Spring / JMS
Envoi / réception synchrone : JmsTemplate
org.springframework.jms.core
Messages asynchrones : Listeners
JMS 1.0.2 et JMS 1.1
Gestion d'exceptions + réduction code35
![Page 36: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/36.jpg)
Active MQ Fournisseur JMS de la fondation Apache
http://activemq.apache.org
Port d'écoute par défaut : 61616
Fabrique de Connection (ActiveMQConnectionFactory)
Queue / Topics
36
![Page 37: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/37.jpg)
Config Active MQ dans Spring
37
![Page 38: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/38.jpg)
Configuration JmsTemplate
38
![Page 39: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/39.jpg)
JmsTemplate : gestion Exceptions
39
![Page 40: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/40.jpg)
Envoi message avec JmsTemplate
40
InjectionsInjections
Callback MessageCreatorCallback MessageCreator
Queue ou Topic ?
![Page 41: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/41.jpg)
Réception Synchrone de message
41
1
2
3
![Page 42: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/42.jpg)
Réception Asynchrone de message
42
![Page 43: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/43.jpg)
Réception Asynchrone de message
43
![Page 44: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/44.jpg)
Namespace jms
44
![Page 45: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/45.jpg)
Convertion de type : interface Converter
45
![Page 46: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/46.jpg)
ANNEXES
46
Ressources
Architecture JEE
Architecture en couche
API JEE
![Page 47: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/47.jpg)
Ressources www.springframework.org API :http://static.springframework.org/spring/docs/2.5.x/api Livres :
•Spring in action (Craig walls. Editions Manning)•Spring par la pratique (Julien Dubois , Editions Eyrolles)•J2EE without EJB (Rod Johnson)
47
![Page 48: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/48.jpg)
Architecture multicouche
48
![Page 49: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/49.jpg)
Architecture J2EE
49
![Page 50: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/50.jpg)
Livraisons J2EE
50
![Page 51: Formation Spring Spécifique 1. SOMMAIRE Historique, définition et architecture (p3) Concept clé N°1 : injection de dépendances (p13) DEV : Intégration](https://reader035.vdocuments.site/reader035/viewer/2022081514/551d9d7f497959293b8b7a6e/html5/thumbnails/51.jpg)
Services J2EE
JNDI : Java Naming Directory Interface
JCA : Java Connector Architecture
JTA : Java Transaction API
JPA : Java Persistence API
JMS : Java Message Service
JAAS : Java Authentication & Authorisation Service
JAX-WS : Java API for XML Web Services
JAXB : Java API for XML Binding51