1 / 28

Spring 3.0

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

Télécharger la présentation

Spring 3.0

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Gildas Cuisinier Spring 3.0

  2. 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

  3. Agenda • Rétrospective de Spring • Spring 3.0 • Supports, dépréciations et suppressions • Présentation des nouveautés • Roadmap

  4. Rétrospective de Spring

  5. Spring 1.0 • Mars 2004 • Alternative légère au EJB 2 • Fonctionnalités : • Injection • AOP • Support de Jdbc, Hibernate, iBatis, JDO, .. • Framework Web

  6. 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

  7. Spring 1.2 • Mai 2005 • DTD améliorée pour configuration plus souple • Alias, import • Premier support du JDK 5 ! • @Transactional, …

  8. 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

  9. Spring 2.5 • Novembre 2007 • Nouveaux namespaces : • JMS • Context • Annotations • Spring : IoC, Tests, Web • Standard JEE • Toujours compatible JDK 1.4

  10. Spring 3

  11. Spring 3.0 • Supports, dépréciations et suppressions • Nouveautés de Spring 3 • Roadmap

  12. 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

  13. Nouveautés

  14. 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

  15. 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 MonBeanmonBean() { return new MonBeanImpl(); } }

  16. 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

  17. 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 • …

  18. 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')

  19. Expression Language DEMO

  20. REST • Intégré dans Spring @MVC • Fournir un support natif • Application visuelle Web • Service • Alternative : Utiliser JAX-RS et son modèle propre

  21. REST - MVC @RequestMapping(value = "/speakers/{id}", method = GET) public Speaker speakerDetail(@PathVariable("id") long id) { returnthis.speakersService.findById(id); } URL : http://localhost:8080/app/speakers/1 • Intérêt ? • Cachable

  22. 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

  23. 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

  24. 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)

  25. 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

  26. REST DEMO

  27. Roadmap

  28. 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

More Related