CarmaBlog

Agilité, Développement Java, Nouvelles technologies et plus…
  • rss
  • Accueil
  • Management
  • Programmation agile
  • Technologie
  • Linux
  • Evénement
  • App Android
  • Contact
  • A propos de l'auteur
  • English
  • Francais

Java EE & CDI vs. Spring

Fabian Piau | jeudi 13 octobre 2011 - 21:58
  • Imprimer
  • Twitter
  • LinkedIn
  • Facebook
  • Google

 English version available

Mercredi soir au JUG nantais, nous avons pu assister à la présentation « Stateful is beautiful » d’Antoine Sabot-Durand.


Expert en Java EE depuis plusieurs années, Antoine nous a donné sa vision sur le paysage Java actuel, en particulier sur Java EE (Enterprise Edition) et l’alternative Spring.


Spring est un conteneur dit léger qui permet d’obtenir une infrastructure similaire à celle d’un serveur d’application Java EE plus lourd. Si le premier ne connait que les beans stateless, le second connait aussi les beans stateful.

L’exemple d’un site e-commerce est souvent choisi pour expliquer concrètement ces deux notions.
Le panier sera représenté par un bean stateful dans le code. Son état est conservé pendant une certaine durée. Cela commence quand l’utilisateur ajoute un produit et prend fin lorsqu’il saisit son numéro de carte bancaire pour payer. L’état stateless est suffisant pour la consultation du catalogue de produits. Pour afficher une fiche produit, on ne se préoccupe pas des produits que l’utilisateur aura consulté précédemment. Le produit sera représenté par un bean stateless.


Java EE et ses vieux démons       

Antoine a également passé en revue les idées reçues sur Java EE. Ces idées découlent pour la plupart de son historique et continuent de le poursuivre. A l’époque de J2EE (comprenez Java EE 4 et inférieur – les versions sorties jusqu’en 2003), la spécification EJB 1.X – 2.1 incluse a essuyé de nombreuses critiques de la part de la communauté Java. Très lourde à mettre en oeuvre du fait de sa complexité et rendant vite votre code très difficilement testable, cette plateforme Java dédiée Entreprise n’a pas convaincu…

Ce manque a même donné naissance au développement de solutions alternatives dans le monde Open Source, tels que Spring et Hibernate.


Depuis, la plateforme (renommée Java EE) a évolué et a été simplifiée, la nouvelle spécification EJB 3.X incluse est devenue plus légère se rapprochant ainsi de ses concurrents. Cela est particulièrement vrai pour la dernière version Java EE 6 sortie fin 2009. En effet, celle-ci inclut CDI (Contexts and Dependency Injection), le standard qu’il lui manquait pour concurrencer sérieusement Spring. Elle inclut également la notion de « profile », permettant à Java EE de se spécialiser. Dans les grandes lignes, on ne prend que les composants dont on a besoin. Pour les tests d’intégration dans le conteneur, Antoine nous a conseillé d’utiliser l’outil Arquillian.


       Logo Spring

Spring a fait le choix de ne pas implémenter le nouveau standard CDI. Pourquoi? La réponse n’est pas si simple. Peut-être qu’implémenter ce nouveau standard allait être impactant sur le code existant et risquait de mettre un frein aux évolutions du framework. En même temps, fort de son nombre d’utilisateurs, peut-être que SpringSource a décidé de continuer son développement parallèle en espérant un jour détrôner définitivement CDI. En général, les entreprises sont plutôt frileuses lorsqu’il s’agit de revoir leurs habitudes, connaissances et autres bonnes pratiques (utiliser CDI au lieu de Spring serait un investissement très important). En même temps, cela peut être à double tranchant si CDI se met à décoller dans les années à venir. Affaire à suivre!
A noter : contrairement à Spring, Hibernate implémente JPA pour la couche de persistance (qui est le standard Java EE) lui assurant une plus grande pérennité pour l’avenir.


Comme Antoine l’a rappelé à de nombreuses reprises, le but de sa présentation n’est pas de dénigrer Spring. Bien au contraire, il continue d’ailleurs de l’utiliser et pourrait difficilement s’en passer. Il a notamment fait la métaphore du « marteau doré » avec Spring que j’ai trouvée plutôt intéressante. Aujourd’hui, la majorité des développeurs Java ne se posent pas de questions lorsqu’ils veulent faire de l’injection de dépendance et utilisent spontanément Spring (on a un clou, hop on prend notre marteau favori). Pourtant, il faudrait pouvoir poser ce marteau doré quelques temps et voir ce qui se fait autour. En fonction du projet, Spring n’est pas toujours le plus adéquat.


Aujourd’hui, le succès de Java EE reste globalement mitigé, les idées reçues ont la dent dure, Spring a encore de beaux jours devant lui. Combien de temps encore? Seul l’avenir nous le dira… En attendant, Antoine nous invite fortement à essayer Java EE 6 pour se faire sa propre opinion. A la fin, nous avons eu le droit à une démonstration : un projet exemple en Java EE, créé en quelques minutes à partir d’un archetype Maven et exploitant les notions stateful et stateless.


Pour en savoir davantage, je vous invite à lire ces deux articles écrits par Antoine :

  • Les rendez-vous manqués de Spring (une courte histoire de Java EE)
  • Java EE 6 ici et maintenant!

Articles similaires

springQCon London 2016 – Spring Framework 5 – Preview et Roadmap coffee beansUn peu d’étymologie sur Java et ses Beans databaseGérer une séquence de base de données avec Spring Java User GroupJava User Group – JUG
Commentaires
Pas de Commentaires »
Catégories
Evénement
Tags
cdi, hibernate, java, java ee, jug, spring
Flux rss des commentaires Flux rss des commentaires

Changer la langue de Firefox

Fabian Piau | samedi 1 octobre 2011 - 16:24
  • Imprimer
  • Twitter
  • LinkedIn
  • Facebook
  • Google

 English version available

Remarque
Pour changer la langue de Firefox, vous pouvez le réinstaller en choisissant la langue de votre choix sur la page officielle. Mais, il y a mieux!

Firefox Multilangues

Peut-être que votre navigateur favori ne correspond pas à votre langue ou que vous voulez simplement la changer pour votre confort. Pour cela, vous pouvez réinstaller Firefox en ayant pris soin de sélectionner la bonne langue… Mais ce n’est pas la manière la plus efficace.

Voici une méthode qui vous permettra de changer la langue de Firefox en quelques secondes, comme si vous ajoutiez une extension au navigateur.


Installer la langue de votre choix

  • Firefox en français : https://addons.mozilla.org/fr/firefox/addon/francais-language-pack/
  • Firefox en espagnol : https://addons.mozilla.org/fr/firefox/addon/espanol-espana-language-pac/
  • Firefox en anglais (Etats-Unis) : https://addons.mozilla.org/fr/firefox/addon/english-us-language-pack/
  • Firefox en allemand : https://addons.mozilla.org/fr/firefox/addon/deutsch-de-language-pack/

Pour une autre langue, aller sur le site de modules officiel de Mozilla Firefox : https://addons.mozilla.org/fr/firefox/search/?q=lang


Sélectionner votre nouvelle langue

Dans la barre d’adresse, saisir « about:config », changer la valeur de la variable « general.useragent.locale » et donner-lui l’abréviation de votre nouvelle langue (« en », « fr », « es », etc.).


Firefox doit être redémarré pour prendre en compte les modifications. Après redémarrage, vous verrez que la langue a changé !

Articles similaires

firefox-extensionsListe de mes extensions Firefox favorites CaptureFoxCaptureFox : Réalisation de screencasts avec Firefox firefoxFirefox Nightly, Aurora, Beta, Desktop, Mobile, ESR & Co. EclipseChanger le splash screen d’Eclipse en quelques secondes
Commentaires
19 Commentaires »
Catégories
Technologie
Tags
firefox, langue
Flux rss des commentaires Flux rss des commentaires
Page 1 sur 11
Télécharger l'app CarmaBlog

Articles les plus vus

  • Changer la langue de Firefox - 112 659 vues
  • Réaliser un sondage en ligne avec Google Forms / Drive / Docs - 58 977 vues
  • Personnaliser Gnome 3 (Shell) - 27 809 vues
  • FAQ – Sondage en ligne avec Google Forms / Drive / Docs - 18 226 vues
  • Java EE & CDI vs. Spring - 13 950 vues
  • Comparaison NoSQL: Couchbase et MongoDB - 12 715 vues
  • Firefox Nightly, Aurora, Beta, Desktop, Mobile, ESR & Co. - 12 335 vues
  • La signification d’URL, URI et URN - 12 092 vues
  • Open Street Map, une meilleure carte que Google Maps? - 11 965 vues
  • Extensions WordPress de CarmaBlog - 11 032 vues

Commentaires récents

  • User AvatarFabian Piau Oui, un formulaire n'a pas de date de fin. Le... – FAQ - Sondage en ligne avec Google Forms / Drive / Docs – Il y a 1 semaine et 3 heures
  • User AvatarFallcesam Monsieur, Un formulaire framaform est actif pendant 6 mois (voire... – FAQ - Sondage en ligne avec Google Forms / Drive / Docs – Il y a 1 semaine et 10 heures
  • User AvatarFabian Piau Le créateur d'origine doit vous donner des droits supplémentaires sur... – FAQ - Sondage en ligne avec Google Forms / Drive / Docs – Il y a 1 semaine et 1 jour
  • User AvatarChloé Cheyrezy bonjour, comment peut -on obtenir les réponses d'un questionnaire, qui... – FAQ - Sondage en ligne avec Google Forms / Drive / Docs – Il y a 1 semaine et 1 jour
  • User AvatarFabian Piau Effectivement, le lien que vous avez fourni n'est pas le... – FAQ - Sondage en ligne avec Google Forms / Drive / Docs – Il y a 1 semaine et 4 jours

Twitter

Mes Tweets

Articles récents

  • TransferWise, Revolut et Monzo, une petite révolution pour les voyageurs et les expats - Il y a 6 ans et 6 mois
  • Autocomplétion pour Git - Il y a 6 ans et 6 mois
  • Swagger, la documentation API automatisée - Il y a 6 ans et 6 mois
  • Architecture Microservices – Les bonnes pratiques - Il y a 6 ans et 6 mois
  • FAQ – Sondage en ligne avec Google Forms / Drive / Docs - Il y a 6 ans et 6 mois
  • QCon London 2016 – Projet Jigsaw dans JDK 9 – La modularité arrive sur Java - Il y a 6 ans et 6 mois
  • QCon London 2016 – Spring Framework 5 – Preview et Roadmap - Il y a 6 ans et 6 mois
  • Les meilleurs outils gratuits pour tester et optimiser une application ou un site web - Il y a 6 ans et 6 mois
  • Faut-il se méfier de Google? - Il y a 6 ans et 6 mois
  • Création de tweets à partir d’un flux RSS - Il y a 6 ans et 6 mois
  • Booster votre blog WordPress: W3 Total Cache + CloudFlare - Il y a 6 ans et 6 mois
  • Décompilateur de bytecode Java - Il y a 6 ans et 6 mois
  • Choisir la solution d’hébergement web qui correspond à vos besoins - Il y a 6 ans et 6 mois
  • Comment rendre iTunes plus léger et rapide sous Windows? - Il y a 6 ans et 6 mois
  • Updapy, le centre de mises à jour applicatives pour Windows - Il y a 6 ans et 6 mois

Langue

  • Français
  • English

Flux RSS

  • RSS Feed RSS - Articles
  • RSS Feed RSS - Commentaires

Suivez-moi!

Suivez-moi sur Twitter
Suivez-moi sur Linkedin
Suivez-moi sur Stackoverflow
Suivez-moi sur Google
Suivez-moi sur Rss
Link to my Contact

Abonnement email

Saisissez votre adresse email pour être informé des nouveaux articles.

Étiquettes

.net agile agilité android app stores astuce bash blog bonnes pratiques cache chrome cloud css eclipse extension extreme programming firefox formation fosdem google hibernate intégration continue java javascript jquery jug microsoft mobilité informatique mongodb nantes nosql outil partage performance plugin script société sondage spring tdd test test unitaire ubuntu windows wordpress

Liens

  • Agile Nantes
  • Blog Ippon Technologies
  • Blog Netapsys
  • Blog Xebia France
  • Blog Zenika
  • CommitStrip
  • Coursera
  • Developpef
  • Le Touilleur Express
  • Les Cast Codeurs Podcast
  • new Blog( perso );
  • OCTO talks !
  • Open2Study
  • The Coder's Breakfast

Catégories

  • Evénement (11)
  • Linux (3)
  • Management (7)
  • Programmation agile (25)
  • Technologie (43)

Archives

  • janvier 2018 (1)
  • mai 2017 (1)
  • mars 2017 (1)
  • octobre 2016 (1)
  • avril 2016 (2)
  • mars 2016 (1)
  • novembre 2015 (1)
  • mai 2015 (1)
  • février 2015 (1)
  • décembre 2014 (1)
  • novembre 2014 (1)
  • septembre 2014 (2)
  • août 2014 (1)
  • juillet 2014 (2)
  • juin 2014 (1)
  • avril 2014 (1)
  • mars 2014 (1)
  • février 2014 (2)
  • janvier 2014 (1)
  • décembre 2013 (1)
  • novembre 2013 (1)
  • octobre 2013 (3)
  • septembre 2013 (5)
  • juillet 2013 (1)
  • juin 2013 (1)
  • mai 2013 (1)
  • avril 2013 (1)
  • mars 2013 (2)
  • février 2013 (1)
  • janvier 2013 (2)
  • décembre 2012 (2)
  • octobre 2012 (1)
  • septembre 2012 (1)
  • juillet 2012 (1)
  • mai 2012 (1)
  • avril 2012 (1)
  • mars 2012 (1)
  • février 2012 (1)
  • janvier 2012 (2)
  • décembre 2011 (1)
  • novembre 2011 (2)
  • octobre 2011 (2)
  • septembre 2011 (1)
  • juillet 2011 (1)
  • juin 2011 (2)
  • avril 2011 (1)
  • mars 2011 (1)
  • février 2011 (1)
  • janvier 2011 (2)
  • novembre 2010 (2)
  • septembre 2010 (1)
  • août 2010 (1)
  • juillet 2010 (1)
  • juin 2010 (1)
  • mai 2010 (1)
  • avril 2010 (1)
  • mars 2010 (1)
  • février 2010 (1)
  • décembre 2009 (1)
  • novembre 2009 (1)
  • octobre 2009 (2)
  • septembre 2009 (2)
  • août 2009 (3)
  • juillet 2009 (1)
  • juin 2009 (2)
Suivez-moi sur Twitter
Suivez-moi sur Linkedin
Suivez-moi sur Stackoverflow
Suivez-moi sur Google
Suivez-moi sur Rss
Link to my Contact
rss Flux rss des commentaires powered by Wordpress get firefox
Fabian Piau | Copyright © 2009 - 2018
Tous droits réservés | Haut ↑