MarsJUG - Spring 3.0
Upcoming SlideShare
Loading in...5
×
 

MarsJUG - Spring 3.0

on

  • 670 views

Spring 3.0 presentation at MarsJUG

Spring 3.0 presentation at MarsJUG

Statistics

Views

Total Views
670
Views on SlideShare
637
Embed Views
33

Actions

Likes
0
Downloads
10
Comments
0

3 Embeds 33

http://www.gcuisinier.net 23
http://www.linkedin.com 6
https://www.linkedin.com 4

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

MarsJUG - Spring 3.0 MarsJUG - Spring 3.0 Presentation Transcript

  • Spring 3.0 Gildas Cuisiniervendredi 19 février 2010
  • 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 février 2010
  • Agenda Retrospective Spring 3.0 Spring et JEE 6 3vendredi 19 février 2010
  • Retrospectivevendredi 19 février 2010
  • Avant Spring EJB 2 Modèle complexe Difficile à tester 5vendredi 19 février 2010
  • Spring 1.0 Mars 2004 Fonctionnalités Inversion du contrôle Programmation Orienté Aspect (AOP) Support de Jdbc, Hibernate, JDO Framework Web 6vendredi 19 février 2010
  • Instanciation Dépendance directe Difficile à tester 7vendredi 19 février 2010
  • Registre 8vendredi 19 février 2010
  • IoC : Injection de dépendances Injecte InstanceB Instancie Instancie 9vendredi 19 février 2010 Instancie
  • IoC : Avantages POJO Dépendance uniquement sur les contrats Plus simple à tester 10vendredi 19 février 2010
  • Spring 1.0 Configuration xml, basée sur une DTD Un seul tag : <bean> Possibilité de métadonnées sur les classes Basé sur Xdocletvendredi 19 février 2010
  • Spring 1.2 Mai 2005 Toujours basé sur une DTD Alias, import Premier support du JDK 5 ! @Transactional, …vendredi 19 février 2010
  • 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 13vendredi 19 février 2010
  • Spring 2.5 Novembre 2007 Nouveaux namespaces : JMS Context Annotations Spring : IoC, Tests, Web Standard JEE Toujours compatible JDK 1.4 14vendredi 19 février 2010
  • Spring 3.0vendredi 19 février 2010
  • Spring 3.0 Supports, dépréciations et suppressions Nouveautés de Spring 3 Rest, Expression Languages, namespaces Spring 3.1 16vendredi 19 février 2010
  • Java 5 - ApplicationContext <T> T getBean(Class<T> requiredType) throws BeansException; Pas de casting SpeakerRepository repository = context.getBean(SpeakerRepository.class); 17vendredi 19 février 2010
  • Java 5 - RowMapper private class SpeakerMapper implements RowMapper<Speaker> { 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 février 2010
  • Java 5 - Varargs Avant public Integer saveOld(Speaker speaker) { return template.update("insert into speakers values (null, ?,?,?,?)", new Object[]{speaker.getFirstName(), speaker.getLastName(), speaker.getEmail(), speaker.getBirthday()}); } Spring 3 public Integer save(Speaker speaker) { return template.update("insert into speakers values (null, ?,?,?,?)", speaker.getFirstName(), speaker.getLastName(), speaker.getEmail(), speaker.getBirthday()); } 19vendredi 19 février 2010
  • 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 Le support de Struts 1.0 Suppression Le support de Commons Attributes Le support de Toplink 20vendredi 19 février 2010
  • DEMO DROP INvendredi 19 février 2010
  • 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 février 2010
  • 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 { 23vendredi 19 février 2010
  • Version Annotation @Configuration public class AppConfig { @Bean public MonBean monBean() { return new MonBeanImpl(); } } 24vendredi 19 février 2010
  • 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 25vendredi 19 février 2010
  • EL : Synthaxe Syntaxe Type objet.propriete Appel des getters/setter chaine.subString(2,3) Appel d’une méthode array[2] Accès tableau par index list[2] Accès liste par index map[‘clé’] Map 26vendredi 19 février 2010
  • EL : Synthaxe Syntaxe Type 2 == 2 Opérateur 2 == 2 and 3 == 4 (faux) Opérateur logique 2 == 1 or 4 ==4 (vrai) 5.00 matches ^-?d+(.d{2})?$ Regex prenom ?:‘inconu’ Opérateur elvis objet?.propriete?.proprieteFils Safe navigation 27vendredi 19 février 2010
  • Expression Language Attributs du contexte systemProperties, systemEnvironnent Beans Web : contextParameters, contextAttributes request, session 28vendredi 19 février 2010
  • EL : A venir Utilisation dans les projets du portfolio Exemple : Spring Security <http use-expressions="true"> <intercept-url pattern="/secure/**" access="hasRole(ROLE_SUPERVISOR) and hasIpAddress (192.168.1.0/24)" /> ... </http> 29vendredi 19 février 2010
  • Spring MVC Namespace de configuration Support de REST Nouvelles vues : Xml, Json, RSS Mécanisme de sélection de la vue selon la requête API client 30vendredi 19 février 2010
  • REST Intégré dans Spring @MVC Fournir un support natif Application visuelle Web Service Alternative : Utiliser JAX-RS et son modèle propre 31vendredi 19 février 2010
  • Exemple 32vendredi 19 février 2010
  • REST – Limitation HTML REST : Utilisation les méthodes HTTP : GET,POST,PUT,DELETE HTML ne gère que GET / POST Solution : HiddenHttpMethodFilter Taglib Spring MVC utilise cette solution 33vendredi 19 février 2010
  • REST – Content Negociation URL = Resource Plusieurs représentations possibles Solution : ContentNegotiatingViewResolver Délègue aux autres ViewResolver Sélectionne celui qui correspond à la demande 34vendredi 19 février 2010
  • REST - Client RestTemplate API de haut niveau pour REST Accès au méthodes GET, PUT, POST, DELETE, OPTIONS Gestion des conversions des objets ‣ HttpMessageConverter Reste extensible par utilisation de CallBack ‣ Génération de la requête ‣ Traduction de la réponse 35vendredi 19 février 2010
  • Support du scheduling Avant : Configuration verbeuse en XML Définition du Scheduler Définition du Trigger Définition du Job Définition du Bean « métier » Après : 36vendredi 19 février 2010
  • Support du scheduling Alternative : Annotation Cron Delai fixe Période fixe 37vendredi 19 février 2010
  • Support appel asynchrone Permet de rendre asynchrone l’appel d’une méthode Annotation @Asyn Délègue l’appel à un TaskExecutor 38vendredi 19 février 2010
  • Support appel asynchrone Cas 1 : Méthode sans résultat Cas 2 : Méthode avec résultat 39vendredi 19 février 2010
  • Support des DB embarquées Namespace jdbc Permet de configurer des bases embarquées Derby H2 HSQLDB Permet de configurer des scripts d’initialisation 40vendredi 19 février 2010
  • Support Bean Validation JSR 303 – Bean Validation Standardisation de Hibernate Validator Permet de configurer les contraintes de validation directement sur les objets métiers 41vendredi 19 février 2010
  • Support Bean Validation Spring possède son propre système de validation org.springframework.validation.Validator Propose un adapteur LocalValidatorFactoryBean Toutes couches Validation manuelle via injection du validateur 42vendredi 19 février 2010
  • Support JSR 330 - @Inject JSR initiée par SpringSource et Google Propose un jeu d’annotations propre @Inject ↔ @AutoWired mais limité @Qualifier ↔ @Qualifier mais limité @Named ↔ @Qualifier sur le nom du Bean @Singleton @Scope 43vendredi 19 février 2010
  • DEMO RESTvendredi 19 février 2010
  • Spring 3.X Roadmap Spring 3.1 : Début 2010 Support complet de JEE 6 Support des conversations 45vendredi 19 février 2010
  • Conclusion Spring 3.0 Release majeure car rupture du JDK 1.4 Nouvelles fonctionnalités intéressantes REST SpEL Bean Validation Pas une révolution pour autant 46vendredi 19 février 2010
  • Spring 3 et JEE 6vendredi 19 février 2010
  • Questionsvendredi 19 février 2010
  • Offert par Eyrolles 49vendredi 19 février 2010