Vous êtes sur la page 1sur 28

Spring 3.

0
Gildas Cuisinier
Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

Gildas Cuisinier
Consultant JEE, Gam Consult
Bas au Luxembourg, depuis 2 ans Certifi Spring Framework

Responsable Spring, Developpez.com


Article technique, FAQ, Forum, Blog Reporter pour diffrents vnements

Relecteur de Spring par la pratique, 2me dition

Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

Agenda
Rtrospective de Spring Spring 3.0
Supports, dprciations et suppressions Prsentation des nouveauts Roadmap

Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

Rtrospective de Spring

Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

Spring 1.0
Mars 2004 Alternative lgre au EJB 2 Fonctionnalits :
Injection AOP Support de Jdbc, Hibernate, iBatis, JDO, .. Framework Web

Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

Spring 1.0
Configuration xml, base sur une DTD
Un seul tag : <bean>

Possibilit de mtadonnes sur les classes


Bas sur Xdoclet Utilisation :
Transaction MVC

Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

Spring 1.2
Mai 2005 DTD amliore pour configuration plus souple
Alias, import

Premier support du JDK 5 !


@Transactional,

Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

Spring 2.0
Octobre 2006 Simplification de la configuration XML
Bas sur XML Schema Namespaces ddis
JEE, Transaction, AOP, Lang, Util

Scope

Annotations AspectJ

Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

Spring 2.5
Novembre 2007 Nouveaux namespaces :
JMS Context

Annotations
Spring : IoC, Tests, Web Standard JEE

Toujours compatible JDK 1.4

Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

Spring 3

Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

Spring 3.0
Supports, dprciations et suppressions Nouveauts de Spring 3 Roadmap

Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

Supports
JDK 1.5+
Rupture : JDK 1.4 nest plus support

Dprciation
Hirarchie de contrleur Web Hirarchie de classe pour Junit 3.8

Suppression
Le support de Commons Attributes Le support de Toplink Le support (hritage) de Struts 1.0

Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

Nouveauts

Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

Spring OXM
Inclusion du module de mapping Object / XML
Provient de Spring WS

Permet une abstraction des API communes


JAXB, JiBX, Xstream, Castor

Utilisation
Gestion des payload REST en XML Accs aux donnes SQL XML

Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

JavaConfig
Configuration par annotations
@Configuration, @Bean, @Lazy, @Primary, @Import, @Value

Version XML :
<beans> <bean name=monBean" class=be.hikage.MonBeanImpl"/> </beans>

Version Annotation:
@Configuration public class AppConfig { @Bean public MonBean monBean() { return new MonBeanImpl(); } }

Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

Expression Language
Syntaxe proche des Unified EL mais avec des fonctionnalits supplmentaires Dvelopp selon les besoins des projets du portfolio Indpendant

Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

Expression Language
Supporte lappel de mthode :
#{'Hello World'.concat('!')} => Hello World !

Supporte les Map, List, Properties


#{monArray[1]} #{maMap[maCle]} #{ systemProperties['user.region']"}

Supporte les oprateurs


#{1==1} -> Vrai

Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

Expression Language
Attributs du contexte
systemProperties, systemEnvironnent Beans Web :
contextParameters, contextAttributes request, session

Securite :
hasRole(), isFullyAuthenticated(), Ex : hasRole('ROLE_SUPERVISOR') and hasIpAddress('192.168.1.0/24')

Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

Expression Language

DEMO

Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

REST
Intgr dans Spring @MVC Fournir un support natif
Application visuelle Web Service

Alternative : Utiliser JAX-RS et son modle propre

Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

REST - MVC
@RequestMapping(value = "/speakers/{id}", method = GET) public Speaker speakerDetail(@PathVariable("id") long id) { return this.speakersService.findById(id); } URL : http://localhost:8080/app/speakers/1 Intrt ?
Cachable

Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

REST HTTP Methods


REST : Utilisation les mthodes HTTP :
GET : Rcuprer une ressource POST : Ajouter une ressource PUT : Modifier une ressource DELETE : Supprimer une ressource

HTML ne gre que GET / POST


Solution : HiddenHttpMethodFilter Taglib Spring MVC utilise cette solution

Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

REST Content Negociation


URL = Resource Plusieurs reprsentations Solution : ContentNegotiatingViewResolver
Dlgue aux autres ViewResolver Slectionne celui qui correspond la demande

@RequestBody
HttpMessageConverter

Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

REST - Client
RestTemplate
DELETE :
delete(String url, String urlVars)

GET :
getForObject(String url,Class responseType,String urlVars)

POST
postForLocation(String url, Object request,String vars) postForObject(String url, Object request, Class responseType, String vars)

PUT
put(String url, Object request,StringurlVars)

Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

REST - Client
HttpMessageConverter
4 implmentations par dfaut
ByteArray, Form, String, Source

Utilisation de callback
Gnration de la requte Traduction de la rponse

Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

REST

DEMO

Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

Roadmap

Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

Spring 3.X Roadmap


Spring 3.0 RC1 : Aujourdhui ?
Toute les fonctionnalits, et document

Spring 3.0 GA : Octobre


Dpendant des retours de la RC1

Spring 3.1 : Dbut 2010


Support complet de JEE 6

Copyright BreizhJug License Creative Commons 2.0 France Paternit - Partage des Conditions Initiales l'Identique

Vous aimerez peut-être aussi