1. Spring est mort,Vive Spring
by Gildas Cuisinier
@gcuisinier
1
samedi 21 avril 2012
2. Agenda
• Episode 1 : Un nouvel espoir
• Episode 2 : Le JCP contre-attaque
• Episode 3 : Le retour du Printemps
2
samedi 21 avril 2012
3. Gildas Cuisinier
• @gcuisinier
• Maitre Artisan Développeur @ Sfeir Benelux
• Evangéliste Spring depuis plusieurs année
3
samedi 21 avril 2012
4. Episode i ( ou iv )
Un nouvel espoir
4
samedi 21 avril 2012
5. La plateforme de la mort
• Plateforme standard, définie par le JCP
• Gros défauts :
• Applications difficilement testables
• Application non portables entre les différentes implémentations
5
samedi 21 avril 2012
6. Un nouvel espoir !
• Conteneur léger, OpenSource
• S'intègre avec les forces en place
• Simplifie les tests
• Basé sur du XML
6
samedi 21 avril 2012
20. Adoption JEE 6
1 an 6 mois Actuellement Ne sais pas Jamais
12% 11%
13%
42%
21%
cyg.be/SpringJEE
20
samedi 21 avril 2012
21. Conversion des troupes actuelles
En partie Ne se prononce pas Non, nous gardons Spring Oui
8%
19%
22%
51%
cyg.be/SpringJEE
21
samedi 21 avril 2012
22. JEE - Nouvelle troupes
En partie Ne se prononce pas Non Oui
16%
26%
37%
21%
cyg.be/SpringJEE
22
samedi 21 avril 2012
23. BILAN
• Spécification fin 2009
• JEE 6 commence à percer en production
• 25-30% actuellement
• > 50% d’ici 1 an
23
samedi 21 avril 2012
24. Spring en 2012
Aucun Spring 2.0 Spring 2.5 Spring 3.0 Spring 3.1
50%
6%
2%
23%
19%
cyg.be/SpringJEE
24
samedi 21 avril 2012
25. Spring 3.1
1 an 6 mois Actuellement Plus d’un an Jamais
28%
9%
29%
26%
8%
cyg.be/SpringJEE
25
samedi 21 avril 2012
26. Reproches
Diffile à mettre en place Invasif Trop de XML Propriétaire
JEE6 fait la même chose Autres Rien
40
30
20
10
0
26
samedi 21 avril 2012
27. • Spring 3.0 - Sorti en même temps que JEE 6
• Bien présent en production
• Spring 3.1 - Sorti fin 2011
• ~25% actuellement
• > 50% d’ici 1 an
27
samedi 21 avril 2012
28. Episode iii ( ou vi )
Le retour du Printemps
28
samedi 21 avril 2012
30. Spring 3.0
• JavaConfig permet de remplacer la
configuration XML 1 @Configuration // <beans>
2 public class ApplicationConfig {
3
• Ne supporte pas toute les 4 @Bean //<bean id="myService>
possibilités de la configuration XML 5
6
public MyService myService() {
return new MyService();
7 }
8
9 }
• Spring 3.1 vient combler ces
lacunes
30
samedi 21 avril 2012
31. @ComponentScan
1 <context:component-scan
base-package="spring"/>
1 @Configuration
2 @ComponentScan("spring")
3 public class ApplicationConfig
31
samedi 21 avril 2012
32. @EnableScheduling
1 public class MaTache {
2
3 @Scheduled(fixedRate = 1000)
4 public void execute() {
5 System.out.println("May the Spring be
with you");
6 }
7 }
32
samedi 21 avril 2012
33. @EnableScheduling
1 <task:annotation-driven />
1 @Configuration
2 @EnableScheduling
3 public class ApplicationConfig {
4 }
33
samedi 21 avril 2012
38. @EnableWebMvc +
WebMvcConfigurerAdapter
1 @Configuration
2 @EnableWebMvc
3 public class WebConfig
4 extends WebMvcConfigurerAdapter{
5
6 @Override
7 public void addInterceptors(InterceptorRegistry registry) {
8 registry.addInterceptor(new LocaleChangeInterceptor());
9 }
10 }
38
samedi 21 avril 2012
39. @EnableWebMvc
Ajout Intercepteur
Configuration de ViewController
Ajout de ResourceHandler
Ne permet pas une configuration fine
➡ @EnableWebMvc et étendre WebMvcConfigurationSupport
39
samedi 21 avril 2012
59. Spring 3.1, c’est aussi
• Support Hibernate 4
• Namespace c:
• JPA sans Persistence.xml
• Amélioration de REST dans SpringMVC
• FlashMap dans Spring MVC
59
samedi 21 avril 2012
60. L’Univers de Spring
SpringData Batch SpringMobile
Integration Framework
SpringAndroid SpringSocial
Security Flex
60
samedi 21 avril 2012
61. Conclusion
• Spring est largement répandu
• Spring continue à évoluer
✓ NoXML
✓ Ouvert au Cloud
• Spring est un écosystème
61
samedi 21 avril 2012
62. cyg.be/cbeamsSpring31 cyg.be/costinlDevoxx11
cyg.be/SpringSourceBlog cyg.be/MattRaibleSpring31
62
samedi 21 avril 2012
63. Sources des images
http://www.thegeekshowpodcast.com
http://www.thinkgeek.com
http://gadgetsin.com
raven - Fotolia.com
63
samedi 21 avril 2012