{"id":457,"date":"2011-10-13T21:58:45","date_gmt":"2011-10-13T19:58:45","guid":{"rendered":"http:\/\/blog.fabianpiau.com\/?p=457"},"modified":"2022-01-01T16:14:27","modified_gmt":"2022-01-01T16:14:27","slug":"java-ee-cdi-vs-spring","status":"publish","type":"post","link":"https:\/\/blog.fabianpiau.com\/fr\/2011\/10\/13\/java-ee-cdi-vs-spring\/","title":{"rendered":"Java EE &#038; CDI vs. Spring"},"content":{"rendered":"<p><a class=\"lang\" href=\"https:\/\/blog.fabianpiau.com\/en\/2011\/10\/13\/java-ee-cdi-vs-spring\/\" title=\"Read in english\"><strong class=\"labellang\"><span class=\"en\">&nbsp;<\/span>English version available<\/strong><\/a><\/p>\n<p>Mercredi soir au <a href=\"https:\/\/blog.fabianpiau.com\/fr\/2009\/10\/24\/java-user-group-jug\/\" title=\"JUG\">JUG<\/a> nantais, nous avons pu assister \u00e0 la pr\u00e9sentation \u00ab\u00a0Stateful is beautiful\u00a0\u00bb d&rsquo;Antoine Sabot-Durand. <\/p>\n<p><br clear=\"none\"\/><\/p>\n<p>Expert en Java EE depuis plusieurs ann\u00e9es, Antoine nous a donn\u00e9 sa vision sur le paysage Java actuel, en particulier sur <a href=\"https:\/\/docs.oracle.com\/javaee\/6\/tutorial\/doc\/\" title=\"Documentation officielle Java EE\" target=\"_blank\" rel=\"noopener noreferrer\">Java EE<\/a> (Enterprise Edition) et l&rsquo;alternative <a href=\"https:\/\/spring.io\/\" target=\"_blank\" title=\"Site officiel de Spring\" rel=\"noopener noreferrer\">Spring<\/a>.<\/p>\n<p><br clear=\"none\"\/><\/p>\n<p>Spring est un conteneur dit l\u00e9ger qui permet d&rsquo;obtenir une infrastructure similaire \u00e0 celle d&rsquo;un serveur d\u2019application Java EE plus lourd. Si le premier ne connait que les beans stateless, le second connait aussi les beans stateful.<\/p>\n<p>L&rsquo;exemple d&rsquo;un site e-commerce est souvent choisi pour expliquer concr\u00e8tement ces deux notions.<br \/>\nLe panier sera repr\u00e9sent\u00e9 par un bean stateful dans le code. Son \u00e9tat est conserv\u00e9 pendant une certaine dur\u00e9e. Cela commence quand l&rsquo;utilisateur ajoute un produit et prend fin lorsqu&rsquo;il saisit son num\u00e9ro de carte bancaire pour payer. L&rsquo;\u00e9tat stateless est suffisant pour la consultation du catalogue de produits. Pour afficher une fiche produit, on ne se pr\u00e9occupe pas des produits que l&rsquo;utilisateur aura consult\u00e9 pr\u00e9c\u00e9demment. Le produit sera repr\u00e9sent\u00e9 par un bean stateless.<\/p>\n<p><br clear=\"none\"\/><\/p>\n<p style=\"float : left;\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" title=\"Java EE et ses vieux d\u00e9mons\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00033\/java_evil_edition.png?resize=144%2C232&#038;ssl=1\" alt=\"Java EE et ses vieux d\u00e9mons\" width=\"144\" height=\"232\" \/>&nbsp; &nbsp; &nbsp; &nbsp;<\/p>\n<p>Antoine a \u00e9galement pass\u00e9 en revue les id\u00e9es re\u00e7ues sur Java EE. Ces id\u00e9es d\u00e9coulent pour la plupart de son historique et continuent de le poursuivre. A l&rsquo;\u00e9poque de J2EE (comprenez Java EE 4 et inf\u00e9rieur &#8211; les versions sorties jusqu&rsquo;en 2003), la sp\u00e9cification EJB 1.X &#8211; 2.1 incluse a essuy\u00e9 de nombreuses critiques de la part de la communaut\u00e9 Java. Tr\u00e8s lourde \u00e0 mettre en oeuvre du fait de sa complexit\u00e9 et rendant vite votre code tr\u00e8s difficilement testable, cette plateforme Java d\u00e9di\u00e9e Entreprise n&rsquo;a pas convaincu&#8230;<\/p>\n<p>Ce manque a m\u00eame donn\u00e9 naissance au d\u00e9veloppement de solutions alternatives dans le monde Open Source, tels que Spring et Hibernate.<\/p>\n<p><br clear=\"none\"\/><\/p>\n<p>Depuis, la plateforme (renomm\u00e9e Java EE) a \u00e9volu\u00e9 et a \u00e9t\u00e9 simplifi\u00e9e, la nouvelle sp\u00e9cification EJB 3.X incluse est devenue plus l\u00e9g\u00e8re se rapprochant ainsi de ses concurrents. Cela est particuli\u00e8rement vrai pour la derni\u00e8re version Java EE 6 sortie fin 2009. En effet, celle-ci inclut <a href=\"https:\/\/www.oracle.com\/technical-resources\/articles\/java\/cdi-javaee-bien.html\" target=\"_blank\" title=\"Billet sur CDI\" rel=\"noopener noreferrer\">CDI<\/a> (Contexts and Dependency Injection), le standard qu&rsquo;il lui manquait pour concurrencer s\u00e9rieusement Spring. Elle inclut \u00e9galement la notion de \u00ab\u00a0profile\u00a0\u00bb, permettant \u00e0 Java EE de se sp\u00e9cialiser. Dans les grandes lignes, on ne prend que les composants dont on a besoin. Pour les tests d&rsquo;int\u00e9gration dans le conteneur, Antoine nous a conseill\u00e9 d&rsquo;utiliser l&rsquo;outil <a href=\"http:\/\/arquillian.org\/\" target=\"_blank\" title=\"Site officiel d&#039;Arquillian\" rel=\"noopener noreferrer\">Arquillian<\/a>.<\/p>\n<p><br clear=\"none\"\/><\/p>\n<p style=\"float : right;\">&nbsp; &nbsp; &nbsp; &nbsp;<img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" title=\"Logo Spring\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00033\/spring.png?resize=206%2C117&#038;ssl=1\" alt=\"Logo Spring\" width=\"206\" height=\"117\" \/><\/p>\n<p>Spring a fait le choix de ne pas impl\u00e9menter le nouveau standard CDI. Pourquoi? La r\u00e9ponse n&rsquo;est pas si simple. Peut-\u00eatre qu&rsquo;impl\u00e9menter ce nouveau standard allait \u00eatre impactant sur le code existant et risquait de mettre un frein aux \u00e9volutions du framework. En m\u00eame temps, fort de son nombre d&rsquo;utilisateurs, peut-\u00eatre que SpringSource a d\u00e9cid\u00e9 de continuer son d\u00e9veloppement parall\u00e8le en esp\u00e9rant un jour d\u00e9tr\u00f4ner d\u00e9finitivement CDI. En g\u00e9n\u00e9ral, les entreprises sont plut\u00f4t frileuses lorsqu&rsquo;il s&rsquo;agit de revoir leurs habitudes, connaissances et autres bonnes pratiques (utiliser CDI au lieu de Spring serait un investissement tr\u00e8s important). En m\u00eame temps, cela peut \u00eatre \u00e0 double tranchant si CDI se met \u00e0 d\u00e9coller dans les ann\u00e9es \u00e0 venir. Affaire \u00e0 suivre!<br \/>\nA noter : contrairement \u00e0 Spring, Hibernate impl\u00e9mente JPA pour la couche de persistance (qui est le standard Java EE) lui assurant une plus grande p\u00e9rennit\u00e9 pour l&rsquo;avenir.<\/p>\n<p><br clear=\"none\"\/><\/p>\n<p>Comme Antoine l&rsquo;a rappel\u00e9 \u00e0 de nombreuses reprises, le but de sa pr\u00e9sentation n&rsquo;est pas de d\u00e9nigrer Spring. Bien au contraire, il continue d&rsquo;ailleurs de l&rsquo;utiliser et pourrait difficilement s&rsquo;en passer. Il a notamment fait la m\u00e9taphore du \u00ab\u00a0marteau dor\u00e9\u00a0\u00bb avec Spring que j&rsquo;ai trouv\u00e9e plut\u00f4t int\u00e9ressante. Aujourd&rsquo;hui, la majorit\u00e9 des d\u00e9veloppeurs Java ne se posent pas de questions lorsqu&rsquo;ils veulent faire de l&rsquo;injection de d\u00e9pendance et utilisent spontan\u00e9ment Spring (on a un clou, hop on prend notre marteau favori). Pourtant, il faudrait pouvoir poser ce marteau dor\u00e9 quelques temps et voir ce qui se fait autour. En fonction du projet, Spring n&rsquo;est pas toujours le plus ad\u00e9quat.<\/p>\n<p><br clear=\"none\"\/><\/p>\n<p>Aujourd&rsquo;hui, le succ\u00e8s de Java EE reste globalement mitig\u00e9, les id\u00e9es re\u00e7ues ont la dent dure, Spring a encore de beaux jours devant lui. Combien de temps encore? Seul l&rsquo;avenir nous le dira&#8230; En attendant, Antoine nous invite fortement \u00e0 essayer Java EE 6 pour se faire sa propre opinion. A la fin, nous avons eu le droit \u00e0 une d\u00e9monstration : un projet exemple en Java EE, cr\u00e9\u00e9 en quelques minutes \u00e0 partir d&rsquo;un archetype Maven et exploitant les notions stateful et stateless.<\/p>\n<p><br clear=\"none\"\/><\/p>\n<p>Pour en savoir davantage, je vous invite \u00e0 lire ces deux articles \u00e9crits par Antoine :<\/p>\n<ul>\n<li><a href=\"https:\/\/blog.ippon.fr\/2010\/03\/30\/les-rendez-vous-manques-de-spring\/\" target=\"_blank\" title=\"Les rendez-vous manqu\u00e9s de Spring (une courte histoire de Java EE)\" rel=\"noopener noreferrer\">Les rendez-vous manqu\u00e9s de Spring (une courte histoire de Java EE)<\/a><\/li>\n<li><a href=\"https:\/\/web.archive.org\/web\/20170521204001\/http:\/\/blog.ippon.fr:80\/2011\/03\/21\/java-ee-6-ici-et-maintenant\/\" target=\"_blank\" title=\"Java EE 6 ici et maintenant!\" rel=\"noopener noreferrer\">Java EE 6 ici et maintenant!<\/a><\/li>\n<\/ul>\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>&nbsp;English version available Mercredi soir au JUG nantais, nous avons pu assister \u00e0 la pr\u00e9sentation \u00ab\u00a0Stateful is beautiful\u00a0\u00bb d&rsquo;Antoine Sabot-Durand. Expert en Java EE depuis plusieurs ann\u00e9es, Antoine nous a donn\u00e9 sa vision sur le paysage Java actuel, en particulier sur Java EE (Enterprise Edition) et l&rsquo;alternative Spring. Spring est un conteneur dit l\u00e9ger qui [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1395,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[6],"tags":[131,130,53,128,51,129],"class_list":["post-457","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-event","tag-cdi","tag-hibernate-software","tag-java","tag-java-ee","tag-jug","tag-spring"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Java EE &amp; CDI vs. Spring | CarmaBlog<\/title>\n<meta name=\"description\" content=\"&nbsp;English version available Mercredi soir au JUG nantais, nous avons pu assister \u00e0 la pr\u00e9sentation &quot;Stateful is beautiful&quot; d&#039;Antoine Sabot-Durand.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.fabianpiau.com\/fr\/2011\/10\/13\/java-ee-cdi-vs-spring\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Java EE &amp; CDI vs. Spring | CarmaBlog\" \/>\n<meta property=\"og:description\" content=\"&nbsp;English version available Mercredi soir au JUG nantais, nous avons pu assister \u00e0 la pr\u00e9sentation &quot;Stateful is beautiful&quot; d&#039;Antoine Sabot-Durand.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.fabianpiau.com\/fr\/2011\/10\/13\/java-ee-cdi-vs-spring\/\" \/>\n<meta property=\"og:site_name\" content=\"CarmaBlog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/fabian.piau\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/fabian.piau\" \/>\n<meta property=\"article:published_time\" content=\"2011-10-13T19:58:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-01-01T16:14:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.fabianpiau.com\/wp-content\/uploads\/2011\/10\/00033.png\" \/>\n\t<meta property=\"og:image:width\" content=\"265\" \/>\n\t<meta property=\"og:image:height\" content=\"265\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Fabian Piau\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@fabianpiau\" \/>\n<meta name=\"twitter:site\" content=\"@fabianpiau\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fabian Piau\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/2011\\\/10\\\/13\\\/java-ee-cdi-vs-spring\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/2011\\\/10\\\/13\\\/java-ee-cdi-vs-spring\\\/\"},\"author\":{\"name\":\"Fabian Piau\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\"},\"headline\":\"Java EE &#038; CDI vs. Spring\",\"datePublished\":\"2011-10-13T19:58:45+00:00\",\"dateModified\":\"2022-01-01T16:14:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/2011\\\/10\\\/13\\\/java-ee-cdi-vs-spring\\\/\"},\"wordCount\":1535,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/2011\\\/10\\\/13\\\/java-ee-cdi-vs-spring\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2011\\\/10\\\/00033.png?fit=265%2C265&ssl=1\",\"keywords\":[\"cdi\",\"hibernate\",\"java\",\"java ee\",\"jug\",\"spring\"],\"articleSection\":[\"Ev\u00e9nement\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blog.fabianpiau.com\\\/2011\\\/10\\\/13\\\/java-ee-cdi-vs-spring\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2011\\\/10\\\/13\\\/java-ee-cdi-vs-spring\\\/\",\"url\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2011\\\/10\\\/13\\\/java-ee-cdi-vs-spring\\\/\",\"name\":\"Java EE & CDI vs. Spring | CarmaBlog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2011\\\/10\\\/13\\\/java-ee-cdi-vs-spring\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/2011\\\/10\\\/13\\\/java-ee-cdi-vs-spring\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2011\\\/10\\\/00033.png?fit=265%2C265&ssl=1\",\"datePublished\":\"2011-10-13T19:58:45+00:00\",\"dateModified\":\"2022-01-01T16:14:27+00:00\",\"description\":\"&nbsp;English version available Mercredi soir au JUG nantais, nous avons pu assister \u00e0 la pr\u00e9sentation \\\"Stateful is beautiful\\\" d'Antoine Sabot-Durand.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2011\\\/10\\\/13\\\/java-ee-cdi-vs-spring\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[[\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2011\\\/10\\\/13\\\/java-ee-cdi-vs-spring\\\/\"]]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2011\\\/10\\\/13\\\/java-ee-cdi-vs-spring\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2011\\\/10\\\/00033.png?fit=265%2C265&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2011\\\/10\\\/00033.png?fit=265%2C265&ssl=1\",\"width\":265,\"height\":265,\"caption\":\"Java EE vs Spring\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2011\\\/10\\\/13\\\/java-ee-cdi-vs-spring\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Homepage\",\"item\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ev\u00e9nement\",\"item\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/category\\\/event\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Java EE &#038; CDI vs. Spring\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/\",\"name\":\"CarmaBlog\",\"description\":\"Agilit\u00e9, D\u00e9veloppement Java, Nouvelles technologies et plus...\",\"publisher\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\",\"name\":\"Fabian Piau\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\",\"width\":567,\"height\":667,\"caption\":\"Fabian Piau\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\"},\"description\":\"D\u00e9veloppeur Java, Fabian s'int\u00e9resse aux nouvelles technologies et plus particuli\u00e8rement \u00e0 leur utilisation dans un contexte agile.\",\"sameAs\":[\"https:\\\/\\\/blog.fabianpiau.com\",\"https:\\\/\\\/www.facebook.com\\\/fabian.piau\",\"https:\\\/\\\/www.instagram.com\\\/fabianpiau\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/fabianpiau\\\/\",\"https:\\\/\\\/x.com\\\/fabianpiau\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Java EE & CDI vs. Spring | CarmaBlog","description":"&nbsp;English version available Mercredi soir au JUG nantais, nous avons pu assister \u00e0 la pr\u00e9sentation \"Stateful is beautiful\" d'Antoine Sabot-Durand.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.fabianpiau.com\/fr\/2011\/10\/13\/java-ee-cdi-vs-spring\/","og_locale":"fr_FR","og_type":"article","og_title":"Java EE & CDI vs. Spring | CarmaBlog","og_description":"&nbsp;English version available Mercredi soir au JUG nantais, nous avons pu assister \u00e0 la pr\u00e9sentation \"Stateful is beautiful\" d'Antoine Sabot-Durand.","og_url":"https:\/\/blog.fabianpiau.com\/fr\/2011\/10\/13\/java-ee-cdi-vs-spring\/","og_site_name":"CarmaBlog","article_publisher":"https:\/\/www.facebook.com\/fabian.piau","article_author":"https:\/\/www.facebook.com\/fabian.piau","article_published_time":"2011-10-13T19:58:45+00:00","article_modified_time":"2022-01-01T16:14:27+00:00","og_image":[{"width":265,"height":265,"url":"https:\/\/blog.fabianpiau.com\/wp-content\/uploads\/2011\/10\/00033.png","type":"image\/png"}],"author":"Fabian Piau","twitter_card":"summary_large_image","twitter_creator":"@fabianpiau","twitter_site":"@fabianpiau","twitter_misc":{"\u00c9crit par":"Fabian Piau","Dur\u00e9e de lecture estim\u00e9e":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.fabianpiau.com\/2011\/10\/13\/java-ee-cdi-vs-spring\/#article","isPartOf":{"@id":"https:\/\/blog.fabianpiau.com\/2011\/10\/13\/java-ee-cdi-vs-spring\/"},"author":{"name":"Fabian Piau","@id":"https:\/\/blog.fabianpiau.com\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14"},"headline":"Java EE &#038; CDI vs. Spring","datePublished":"2011-10-13T19:58:45+00:00","dateModified":"2022-01-01T16:14:27+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.fabianpiau.com\/2011\/10\/13\/java-ee-cdi-vs-spring\/"},"wordCount":1535,"commentCount":0,"publisher":{"@id":"https:\/\/blog.fabianpiau.com\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14"},"image":{"@id":"https:\/\/blog.fabianpiau.com\/2011\/10\/13\/java-ee-cdi-vs-spring\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2011\/10\/00033.png?fit=265%2C265&ssl=1","keywords":["cdi","hibernate","java","java ee","jug","spring"],"articleSection":["Ev\u00e9nement"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.fabianpiau.com\/2011\/10\/13\/java-ee-cdi-vs-spring\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.fabianpiau.com\/fr\/2011\/10\/13\/java-ee-cdi-vs-spring\/","url":"https:\/\/blog.fabianpiau.com\/fr\/2011\/10\/13\/java-ee-cdi-vs-spring\/","name":"Java EE & CDI vs. Spring | CarmaBlog","isPartOf":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/2011\/10\/13\/java-ee-cdi-vs-spring\/#primaryimage"},"image":{"@id":"https:\/\/blog.fabianpiau.com\/2011\/10\/13\/java-ee-cdi-vs-spring\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2011\/10\/00033.png?fit=265%2C265&ssl=1","datePublished":"2011-10-13T19:58:45+00:00","dateModified":"2022-01-01T16:14:27+00:00","description":"&nbsp;English version available Mercredi soir au JUG nantais, nous avons pu assister \u00e0 la pr\u00e9sentation \"Stateful is beautiful\" d'Antoine Sabot-Durand.","breadcrumb":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/2011\/10\/13\/java-ee-cdi-vs-spring\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":[["https:\/\/blog.fabianpiau.com\/fr\/2011\/10\/13\/java-ee-cdi-vs-spring\/"]]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/blog.fabianpiau.com\/fr\/2011\/10\/13\/java-ee-cdi-vs-spring\/#primaryimage","url":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2011\/10\/00033.png?fit=265%2C265&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2011\/10\/00033.png?fit=265%2C265&ssl=1","width":265,"height":265,"caption":"Java EE vs Spring"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.fabianpiau.com\/fr\/2011\/10\/13\/java-ee-cdi-vs-spring\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Homepage","item":"https:\/\/blog.fabianpiau.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Ev\u00e9nement","item":"https:\/\/blog.fabianpiau.com\/fr\/category\/event\/"},{"@type":"ListItem","position":3,"name":"Java EE &#038; CDI vs. Spring"}]},{"@type":"WebSite","@id":"https:\/\/blog.fabianpiau.com\/fr\/#website","url":"https:\/\/blog.fabianpiau.com\/fr\/","name":"CarmaBlog","description":"Agilit\u00e9, D\u00e9veloppement Java, Nouvelles technologies et plus...","publisher":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.fabianpiau.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":["Person","Organization"],"@id":"https:\/\/blog.fabianpiau.com\/fr\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14","name":"Fabian Piau","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1","url":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1","width":567,"height":667,"caption":"Fabian Piau"},"logo":{"@id":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1"},"description":"D\u00e9veloppeur Java, Fabian s'int\u00e9resse aux nouvelles technologies et plus particuli\u00e8rement \u00e0 leur utilisation dans un contexte agile.","sameAs":["https:\/\/blog.fabianpiau.com","https:\/\/www.facebook.com\/fabian.piau","https:\/\/www.instagram.com\/fabianpiau\/","https:\/\/www.linkedin.com\/in\/fabianpiau\/","https:\/\/x.com\/fabianpiau"]}]}},"views":16252,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2011\/10\/00033.png?fit=265%2C265&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pbSHyl-7n","_links":{"self":[{"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/posts\/457","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/comments?post=457"}],"version-history":[{"count":0,"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/posts\/457\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/media\/1395"}],"wp:attachment":[{"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/media?parent=457"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/categories?post=457"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/fr\/wp-json\/wp\/v2\/tags?post=457"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}