+ All Categories
Home > Documents > Spring 3.0

Spring 3.0

Date post: 02-Jan-2016
Category:
Upload: caleb-macias
View: 25 times
Download: 0 times
Share this document with a friend
Description:
Gildas Cuisinier. Spring 3.0. 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 différents évènements - PowerPoint PPT Presentation
28
t © BreizhJug – License Creative Commons 2.0 France – Paternité - Partage des Conditions Initiales à l'Identique Spring 3.0 Gildas Cuisinier
Transcript

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

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 différents évènements

Relecteur de Spring par la pratique, 2ème édition

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

Agenda

Rétrospective de Spring Spring 3.0

• Supports, dépréciations et suppressions

• Présentation des nouveautés• Roadmap

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

Rétrospective de Spring

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

Spring 1.0

Mars 2004 Alternative légère au EJB 2 Fonctionnalités :

• 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, basée sur une DTD• Un seul tag : <bean>

Possibilité de métadonnées 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 améliorée 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 dédiés

• 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, dépréciations et suppressions Nouveautés 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 n’est plus supporté

Dépréciation• Hiérarchie de contrôleur Web• Hiérarchie de classe pour Junit 3.8

Suppression• Le support de Commons Attributes• Le support de Toplink• Le support (héritage) de Struts 1.0

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

Nouveautés

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• Accès aux données 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 fonctionnalités supplémentaires

Développé selon les besoins des projets du portfolio

Indépendant

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

Expression Language

Supporte l’appel de méthode :• #{'Hello World'.concat('!')} => Hello World !

Supporte les Map, List, Properties• #{monArray[1]}• #{maMap[‘maCle’]}• #{ systemProperties['user.region']"}

Supporte les opérateurs• #{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

Intégré dans Spring @MVC Fournir un support natif

• Application visuelle Web• Service

Alternative : Utiliser JAX-RS et son modèle 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

Intérêt ?• Cachable

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

REST – HTTP Methods

REST : Utilisation les méthodes HTTP :• GET : Récupérer une ressource• POST : Ajouter une ressource• PUT : Modifier une ressource• DELETE : Supprimer une ressource

HTML ne gère 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 représentations Solution :

ContentNegotiatingViewResolver• Délègue aux autres ViewResolver• Sélectionne 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,String…urlVars)

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

REST - Client

HttpMessageConverter• 4 implémentations par défaut

• ByteArray, Form, String, Source

Utilisation de callback• Génération de la requête• Traduction de la réponse

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 : Aujourd’hui ?• Toute les fonctionnalités, et documenté

Spring 3.0 GA : Octobre• Dépendant des retours de la RC1

Spring 3.1 : Début 2010• Support complet de JEE 6


Recommended