MarsJUG - Spring 3.0

Click here to load reader

  • date post

    28-May-2015
  • Category

    Technology

  • view

    482
  • download

    1

Embed Size (px)

description

Spring 3.0 presentation at MarsJUG

Transcript of MarsJUG - Spring 3.0

  • 1. Spring 3.0Gildas Cuisiniervendredi 19 fvrier 2010

2. Gildas Cuisinier Consultant Java depuis 3 ans Gam Consult Luxembourg Certifi Spring Responsable Spring @ Developpez.com Article, FAQ, Forum, Compte rendu Relecteur technique 2vendredi 19 fvrier 2010 3. Agenda Retrospective Spring 3.0 Spring et JEE 6 3vendredi 19 fvrier 2010 4. Retrospectivevendredi 19 fvrier 2010 5. Avant Spring EJB 2 Modle complexe Difficile tester5vendredi 19 fvrier 2010 6. Spring 1.0 Mars 2004 Fonctionnalits Inversion du contrle Programmation Orient Aspect (AOP) Support de Jdbc, Hibernate, JDO Framework Web6vendredi 19 fvrier 2010 7. Instanciation Dpendance directe Difficile tester7vendredi 19 fvrier 2010 8. Registre 8vendredi 19 fvrier 2010 9. IoC : Injection de dpendances Injecte InstanceBInstancie Instancie 9vendredi 19 fvrier 2010 Instancie 10. IoC : Avantages POJO Dpendance uniquement sur les contrats Plus simple tester 10vendredi 19 fvrier 2010 11. Spring 1.0 Configuration xml, base sur une DTD Un seul tag : Possibilit de mtadonnes sur les classes Bas sur Xdocletvendredi 19 fvrier 2010 12. Spring 1.2 Mai 2005 Toujours bas sur une DTD Alias, import Premier support du JDK 5 ! @Transactional, vendredi 19 fvrier 2010 13. Spring 2.0 Octobre 2006 Simplification de la configuration XML Bas sur XML Schema Namespaces ddis JEE, Transaction, AOP, Lang, Util Scope Annotations AspectJ 13vendredi 19 fvrier 2010 14. Spring 2.5 Novembre 2007 Nouveaux namespaces : JMS Context Annotations Spring : IoC, Tests, Web Standard JEE Toujours compatible JDK 1.414vendredi 19 fvrier 2010 15. Spring 3.0vendredi 19 fvrier 2010 16. Spring 3.0 Supports, dprciations et suppressions Nouveauts de Spring 3 Rest, Expression Languages, namespaces Spring 3.116vendredi 19 fvrier 2010 17. Java 5 - ApplicationContext T getBean(Class requiredType) throws BeansException; Pas de casting SpeakerRepository repository =context.getBean(SpeakerRepository.class); 17vendredi 19 fvrier 2010 18. Java 5 - RowMapper private class SpeakerMapper implements RowMapper { public Speaker mapRow(ResultSet rs, int rowNum) throws SQLException { return SpeakerBuilder.SpeakerWith() .id(rs.getInt(1)) .firstName( rs.getString(2)) .lastName(rs.getString(3)) .email(rs.getString(4)) .birthday(rs.getDate(5)) .build(); } } 18vendredi 19 fvrier 2010 19. Java 5 - VarargsAvantpublic Integer saveOld(Speaker speaker) { return template.update("insert into speakers values(null, ?,?,?,?)", new Object[]{speaker.getFirstName(), speaker.getLastName(), speaker.getEmail(), speaker.getBirthday()}); }Spring 3public Integer save(Speaker speaker) { return template.update("insert into speakers values(null, ?,?,?,?)", speaker.getFirstName(), speaker.getLastName(), speaker.getEmail(), speaker.getBirthday()); } 19vendredi 19 fvrier 2010 20. Supports JDK 1.5+ Rupture : JDK 1.4 nest plus support Dprciation Hirarchie de contrleur Web Hirarchie de classe pour Junit 3.8 Le support de Struts 1.0 Suppression Le support de Commons Attributes Le support de Toplink 20vendredi 19 fvrier 2010 21. DEMO DROP INvendredi 19 fvrier 2010 22. Spring OXM Inclusion du module de mapping Object / XML Provient de Spring WS Permet une abstraction des API communes JAXB, JiBX, Xstream, Castor Unification des exceptions Utilisation Gestion des payload REST en XML 22vendredi 19 fvrier 2010 23. JavaCong Configuration par annotations @Configuration, @Bean, @Lazy, @Primary, @Import, @Value Version XML : Version Annotation: @Configuration public class AppConfig {23vendredi 19 fvrier 2010 24. Version Annotation @Configuration public class AppConfig { @Bean public MonBean monBean() { return new MonBeanImpl(); } } 24vendredi 19 fvrier 2010 25. Expression Language Syntaxe proche des Unified EL mais avec des fonctionnalits supplmentaires Dvelopp selon les besoins des projets du portfolio Indpendant 25vendredi 19 fvrier 2010 26. EL : Synthaxe SyntaxeType objet.propriete Appel des getters/setter chaine.subString(2,3)Appel dune mthode array[2]Accs tableau par indexlist[2] Accs liste par indexmap[cl]Map26vendredi 19 fvrier 2010 27. EL : Synthaxe Syntaxe Type2 == 2Oprateur 2 == 2 and 3 == 4 (faux) Oprateur logique2 == 1 or 4 ==4 (vrai)5.00 matches ^-?d+(.d{2})?$Regex prenom ?:inconuOprateur elvisobjet?.propriete?.proprieteFils Safe navigation 27vendredi 19 fvrier 2010 28. Expression Language Attributs du contexte systemProperties, systemEnvironnent Beans Web : contextParameters, contextAttributes request, session28vendredi 19 fvrier 2010 29. EL : A venir Utilisation dans les projets du portfolio Exemple : Spring Security ... 29vendredi 19 fvrier 2010 30. Spring MVC Namespace de configuration Support de REST Nouvelles vues : Xml, Json, RSS Mcanisme de slection de la vue selon la requte API client 30vendredi 19 fvrier 2010 31. REST Intgr dans Spring @MVC Fournir un support natif Application visuelle Web Service Alternative : Utiliser JAX-RS et son modle propre31vendredi 19 fvrier 2010 32. Exemple 32vendredi 19 fvrier 2010 33. REST Limitation HTML REST : Utilisation les mthodes HTTP : GET,POST,PUT,DELETE HTML ne gre que GET / POST Solution : HiddenHttpMethodFilter Taglib Spring MVC utilise cette solution33vendredi 19 fvrier 2010 34. REST Content Negociation URL = Resource Plusieurs reprsentations possibles Solution : ContentNegotiatingViewResolver Dlgue aux autres ViewResolver Slectionne celui qui correspond la demande 34vendredi 19 fvrier 2010 35. REST - Client RestTemplate API de haut niveau pour REST Accs au mthodes GET, PUT, POST, DELETE, OPTIONS Gestion des conversions des objets HttpMessageConverter Reste extensible par utilisation de CallBack Gnration de la requte Traduction de la rponse 35vendredi 19 fvrier 2010 36. Support du scheduling Avant : Configuration verbeuse en XML Dfinition du Scheduler Dfinition du Trigger Dfinition du Job Dfinition du Bean mtier Aprs : 36vendredi 19 fvrier 2010 37. Support du schedulingAlternative : AnnotationCronDelai fixePriode fixe 37vendredi 19 fvrier 2010 38. Support appel asynchronePermet de rendre asynchronelappel dune mthodeAnnotation @AsynDlgue lappel un TaskExecutor38vendredi 19 fvrier 2010 39. Support appel asynchrone Cas 1 : Mthode sans rsultat Cas 2 : Mthode avec rsultat 39vendredi 19 fvrier 2010 40. Support des DB embarques Namespace jdbc Permet de configurer des bases embarques Derby H2 HSQLDB Permet de configurer des scripts dinitialisation 40vendredi 19 fvrier 2010 41. Support Bean Validation JSR 303 Bean Validation Standardisation de Hibernate Validator Permet de configurer les contraintes de validation directement sur les objets mtiers41vendredi 19 fvrier 2010 42. Support Bean Validation Spring possde son propre systme de validation org.springframework.validation.Validator Propose un adapteur LocalValidatorFactoryBean Toutes couches Validation manuelle via injection du validateur 42vendredi 19 fvrier 2010 43. Support JSR 330 - @Inject JSR initie par SpringSource et Google Propose un jeu dannotations propre @Inject @AutoWired mais limit @Qualifier @Qualifier mais limit @Named @Qualifier sur le nom du Bean @Singleton @Scope43vendredi 19 fvrier 2010 44. DEMO RESTvendredi 19 fvrier 2010 45. Spring 3.X Roadmap Spring 3.1 : Dbut 2010 Support complet de JEE 6 Support des conversations 45vendredi 19 fvrier 2010 46. Conclusion Spring 3.0 Release majeure car rupture du JDK 1.4 Nouvelles fonctionnalits intressantes REST SpEL Bean Validation Pas une rvolution pour autant 46vendredi 19 fvrier 2010 47. Spring 3 et JEE 6vendredi 19 fvrier 2010 48. Questionsvendredi 19 fvrier 2010 49. Offert par Eyrolles 49vendredi 19 fvrier 2010