<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Spring-Framework on Java &amp; Moi</title><link>https://javaetmoi.com/tags/spring-framework/</link><description>Recent content in Spring-Framework on Java &amp; Moi</description><generator>Hugo</generator><language>fr</language><lastBuildDate>Mon, 21 Apr 2025 12:04:33 +0000</lastBuildDate><atom:link href="https://javaetmoi.com/tags/spring-framework/feed.xml" rel="self" type="application/rss+xml"/><item><title>Optimisez vos applications Spring Boot avec CDS et le projet Leyden</title><link>https://javaetmoi.com/2025/04/optimisez-vos-applications-spring-boot-avec-cds-et-le-projet-leyden/</link><pubDate>Mon, 21 Apr 2025 12:04:33 +0000</pubDate><guid isPermaLink="false">https://javaetmoi.com/?p=2482</guid><description>&lt;p&gt;Conférence : &lt;a href="https://www.devoxx.fr/"&gt;Devoxx France 2025&lt;/a&gt;&lt;br&gt;
Date : 17 avril 2025&lt;br&gt;Speaker : &lt;a href="https://seb.deleuze.fr/"&gt;Sébastien Deleuze&lt;/a&gt; (Broadcom)&lt;br&gt;
Format : Conférence (45 mn) / &lt;a href="https://www.youtube.com/watch?v=4EAxhhSWgw4"&gt;Replay Youtube&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Sébastien est Core Commiter sur &lt;a href="https://spring.io/projects/spring-framework"&gt;Spring Framework&lt;/a&gt;.
Il intervient également sur des sujets transverses au portfolio Spring : support de Kotlin, null-safety (avec &lt;a href="https://jspecify.dev/"&gt;JSpecify&lt;/a&gt;) et les sujets d’optimisation.
Dans ce talk, il a pour ambition de nous montrer &lt;strong&gt;comment améliorer l’efficacité de 80% des applications Spring&lt;/strong&gt;, que ce soit de nouvelles applications ou des applications Legacy.&lt;/p&gt;
&lt;p&gt;Les raisons d’améliorer l’efficacité de nos applications sont multiples :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Baisser le cout&lt;/strong&gt; de run des applications&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Développement durable&lt;/strong&gt; pour diminuer la consommation d’énergie, de mémoire et de CPU&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Optimiser&lt;/strong&gt; les applications pour les &lt;strong&gt;containers&lt;/strong&gt; (sur le Cloud ou OnPremise)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour arriver à nos fins, Sébastien nous propose 3 technologies :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;CDS&lt;/strong&gt; : techno relativement vieille mais qui s’est améliorée au fil des versions de Java&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AOT cache&lt;/strong&gt; : Java 24 permet d’utiliser l’AOT cache qui est une version améliorée CDS. Sébastien prédit l’exploision de AOT Cache avec la LTS Java 25&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AOT cache with profiling&lt;/strong&gt; : technologie expérimentale et prometeuse&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="Sébastien Deleuze at Devoxx France 2025"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2025/04/word-image-2482-1.jpeg"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>15 prises de notes à Devoxx France 2018</title><link>https://javaetmoi.com/2018/04/15-prises-de-notes-a-devoxx-france-2018/</link><pubDate>Fri, 27 Apr 2018 16:23:25 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=1826</guid><description>&lt;p&gt;L’intégralité des &lt;strong&gt;vidéos&lt;/strong&gt; des &lt;strong&gt;conférences&lt;/strong&gt; et &lt;strong&gt;universités&lt;/strong&gt; présentées lors de &lt;strong&gt;Devoxx France&lt;/strong&gt; &lt;strong&gt;2018&lt;/strong&gt; sont disponibles sur la &lt;a href="https://www.youtube.com/channel/UCsVPQfo5RZErDL41LoWvk0A/videos"&gt;chaîne Devoxx FR de Youtube&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Si vous souhaitez rapidement vous faire un avis sur leur contenu avant de les visionner ou si vous souhaitez garder une trace écrite de ce que vous y avez appris, je mets librement à disposition &lt;strong&gt;mes notes&lt;/strong&gt; prises au cours de ces 3 jours.&lt;/p&gt;
&lt;p&gt;Les sujets sont variés : le &lt;strong&gt;langage Java&lt;/strong&gt; bien évidemment, des &lt;strong&gt;frameworks&lt;/strong&gt; comme Spring et RxJS, de l’ &lt;strong&gt;outillage&lt;/strong&gt; pour vos test tests et vos builds, de l’ &lt;strong&gt;infrastructure&lt;/strong&gt; avec Docker et Kubernetes, de l’ &lt;strong&gt;architecture&lt;/strong&gt; avec DDD et OpenAPI, sans oublier des sujets plus connexes tels la place du développeur en entreprise ou bien l’apprentissage du code aux enfants.&lt;/p&gt;
&lt;p&gt;&lt;a href="wp-content/uploads/2018/04/IMG_20180420_090935.jpg"&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt=""
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2018/04/IMG_20180420_090935.jpg"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt=""
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2018/04/IMG_20180420_090935.jpg"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>14 prises de notes à Devoxx France 2017</title><link>https://javaetmoi.com/2017/04/14-prises-de-notes-a-devoxx-france-2017/</link><pubDate>Tue, 25 Apr 2017 19:03:47 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=1699</guid><description>&lt;p&gt;Les &lt;strong&gt;vidéos des présentations&lt;/strong&gt; données lors de l’édition &lt;strong&gt;2017&lt;/strong&gt; de la conférence &lt;strong&gt;Devoxx France&lt;/strong&gt; sont d’ores et déjà disponibles sur la &lt;a href="https://www.youtube.com/channel/UCsVPQfo5RZErDL41LoWvk0A/videos"&gt;chaîne Devoxx FR de Youtube&lt;/a&gt;.
Si vous n’avez pas le temps de toutes les visionner, si vous souhaitez vous faire un avis avant de les regarder ou si vous souhaitez garder une trace écrite de ce que vous y avez appris, je mets librement à disposition quelques-unes de &lt;strong&gt;mes notes&lt;/strong&gt;.
Il y’en a pour tous les goûts : du Java pur et dur, du framework avec Spring, du front avec Vue.js, des conteneurs avec Docker Swarm mode, des nouvelles approches de développement avec la programmation réactive, des patterns d’architecture avec les microservices, CQRS et l’Event-Sourcing, du legacy tendance avec les logs, et du Big Data avec Elasticsearch.&lt;/p&gt;
&lt;p&gt;&lt;a href="wp-content/uploads/2017/04/2017-04-14-prises-de-notes-a%CC%80-Devoxx-France-2017.jpg"&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt=""
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2017/04/2017-04-14-prises-de-notes-a%CC%80-Devoxx-France-2017.jpg"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="14 prises de notes à Devoxx France 2017"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2017/04/2017-04-14-prises-de-notes-a%CC%80-Devoxx-France-2017.jpg"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>Quoi de neuf à Devoxx France 2017 ?</title><link>https://javaetmoi.com/2017/04/quoi-de-neuf-a-devoxx-france-2017/</link><pubDate>Tue, 25 Apr 2017 17:30:12 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=1718</guid><description>&lt;p&gt;Voici la présentation qui m’a permis de partager avec mes collègues les &lt;strong&gt;différents sujets qui m’auront marqué&lt;/strong&gt; lors de cette &lt;strong&gt;édition 2017 de Devoxx France&lt;/strong&gt;.
Au programme : &lt;strong&gt;Java 9&lt;/strong&gt; &lt;strong&gt;et&lt;/strong&gt; &lt;strong&gt;10&lt;/strong&gt; (les java modules, mais pas que), les &lt;strong&gt;Microservices&lt;/strong&gt;, &lt;strong&gt;Docker&lt;/strong&gt; et les orchestrateurs, &lt;strong&gt;Spring Framework 5&lt;/strong&gt;, la &lt;strong&gt;programmation réactive&lt;/strong&gt;, &lt;strong&gt;Vue.js&lt;/strong&gt; et enfin ces bons vieux &lt;strong&gt;logs&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;[slideshare id=75354376&amp;amp;doc=13-14-devoxx-fr-home-170424152217]&lt;/p&gt;</description></item><item><title>Up-to-date Spring Framework Petclinic presentation</title><link>https://javaetmoi.com/2017/02/spring-framework-petclinic-presentation/</link><pubDate>Fri, 10 Feb 2017 07:40:20 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=1672</guid><description>&lt;p&gt;Spring Petclinic is a sample application that has been designed to show how the Spring Framework can be used to build simple but powerful database-­oriented applications.
The « canonical » version of Spring Petclinic is based on Spring Boot and Thymeleaf. But many forks exists: distributed version (microservices) built with Spring Cloud, React, AngularJS. The fork we are talking about is named &lt;strong&gt;Spring&lt;/strong&gt; &lt;strong&gt;Framework&lt;/strong&gt; &lt;strong&gt;Petclinic&lt;/strong&gt;. It maintains a Petclinic version both with a &lt;strong&gt;plain old Spring Framework configuration&lt;/strong&gt; and a &lt;strong&gt;3-layer architecture&lt;/strong&gt; (i.e. presentation &amp;ndash;&amp;gt; service &amp;ndash;&amp;gt; repository).&lt;/p&gt;</description></item><item><title>Découvrez les forks de Spring Petclinic</title><link>https://javaetmoi.com/2016/12/les-forks-de-spring-petclinic/</link><pubDate>Wed, 21 Dec 2016 16:20:08 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=1657</guid><description>&lt;p&gt;L’ &lt;a href="https://github.com/spring-projects/spring-petclinic"&gt;&lt;strong&gt;application démo Spring Petclinic&lt;/strong&gt;&lt;/a&gt; a été conçue pour montrer comment le framework Spring peut être utilisé pour développer une &lt;strong&gt;application web&lt;/strong&gt; secondée par une base de données relationnelle. En somme, rien de révolutionnaire. Mais c’est ce qui fait tout son intérêt : présenter une &lt;strong&gt;architecture logicielle&lt;/strong&gt; respectant &lt;strong&gt;l’état de l’art&lt;/strong&gt; d’une application conçue avec &lt;strong&gt;Spring&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Avec plus de 2000 forks sur GitHub, la communauté a créé de nombreux forks de Spring Petclinic : &lt;strong&gt;Angular&lt;/strong&gt;, &lt;strong&gt;React&lt;/strong&gt;, &lt;strong&gt;REST&lt;/strong&gt;, &lt;strong&gt;Spring Cloud&lt;/strong&gt; … Afin de fédérer cet engouement, l’ &lt;a href="https://github.com/spring-petclinic"&gt;&lt;strong&gt;organisation GitHub Spring Petclinic&lt;/strong&gt;&lt;/a&gt; a été créé sur GitHub en novembre 2016. La version de référence de Spring Petclinic reste sur &lt;a href="https://github.com/spring-projects/spring-petclinic"&gt;https://github.com/spring-projects/spring-petclinic&lt;/a&gt;. Les branches et les forks ont basculé sur &lt;a href="https://github.com/spring-petclinic"&gt;https://github.com/spring-petclinic&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Ce billet a pour objectif de vous présenter cette récente initiative puis de vous présenter les &lt;strong&gt;différents forks&lt;/strong&gt; d’ores et déjà disponible dans l’organisation Spring Petclinic. Mais avant cela, remontons le temps.&lt;/p&gt;</description></item><item><title>Spring Core 4.2 Certification Mock Exam</title><link>https://javaetmoi.com/2016/01/spring-core-4-2-certification-mock-exam/</link><pubDate>Mon, 18 Jan 2016 07:05:32 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=1508</guid><description>&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="spring-pro-cert"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2016/01/spring-pro-cert.jpg"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
Four years ago, I’ve published a first &lt;a href="http://javaetmoi.com/2012/02/core-spring-3-0-certification-mock-exam/"&gt;mock exam for the Spring Core 3.0 Certification&lt;/a&gt;. Encouraged by Michael and Alan, I’ve updated this &lt;strong&gt;free&lt;/strong&gt; &lt;strong&gt;mock exam&lt;/strong&gt; for the &lt;a href="http://pivotal.io/academy#certification"&gt;Spring Professional certification based on the Spring Core 4.2 course&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;According to the &lt;a href="wp-content/uploads/2016/01/Core-Spring-4.2-Certification-Study-Guide.pdf"&gt;Core Spring 4.2 Certification Study Guide&lt;/a&gt;, 3 new topics have been added to the &lt;strong&gt;Spring Core 4.2 mock exam&lt;/strong&gt;: &lt;strong&gt;REST&lt;/strong&gt;, &lt;strong&gt;Microservices&lt;/strong&gt; and &lt;strong&gt;Spring Cloud&lt;/strong&gt;. They replace older topics: JMX, JMS and Remoting.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="spring-pro-cert"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2016/01/spring-pro-cert.jpg"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>Les dessous du Framework Spring</title><link>https://javaetmoi.com/2015/12/les-dessous-du-framework-spring/</link><pubDate>Mon, 07 Dec 2015 17:50:46 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=1493</guid><description>&lt;p&gt;Chaque jour, de nombreux développeurs utilisent le &lt;strong&gt;framework Spring&lt;/strong&gt; pour &lt;strong&gt;l’injection de dépendances&lt;/strong&gt; et la &lt;strong&gt;gestion des transactions&lt;/strong&gt;. Majeures, ces 2 fonctionnalités ne nécessitent pas un gros effort d’apprentissage. Pour autant, leurs mises en œuvre par le framework est complexe. Par curiosité intellectuelle, mais également afin d’éviter certains pièges et de profiter pleinement des capacités de Spring, il est intéressant de comprendre les &lt;strong&gt;mécanismes internes du framework&lt;/strong&gt; qu’on utilise au quotidien : &lt;strong&gt;cycle de vie&lt;/strong&gt; d’un bean, &lt;strong&gt;proxy&lt;/strong&gt;, &lt;strong&gt;intercepteur&lt;/strong&gt;, &lt;strong&gt;post-processeur&lt;/strong&gt;, &lt;strong&gt;fabrique&lt;/strong&gt; de beans, &lt;strong&gt;hiérarchie de contextes&lt;/strong&gt;, &lt;strong&gt;portée&lt;/strong&gt; …
Les slides de cette présentation ont pour objectif de vous les introduire.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="//fr.slideshare.net/AntoineRey/les-dessous-du-framework-spring" title="Les dessous du framework spring"&gt;Les dessous du framework spring&lt;/a&gt;&lt;/strong&gt; par &lt;strong&gt;&lt;a href="//www.slideshare.net/AntoineRey"&gt;Antoine Rey&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>18 prises de notes à Devoxx France 2015</title><link>https://javaetmoi.com/2015/04/18-prises-de-notes-a-devoxx-france-2015/</link><pubDate>Tue, 21 Apr 2015 06:03:20 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=1356</guid><description>&lt;p&gt;En attendant que les vidéos des &lt;a href="http://cfp.devoxx.fr/2015/index.html"&gt;différentes conférences de l’édition 2015&lt;/a&gt; de Devoxx France soient mises en ligne sur &lt;a href="http://www.parleys.com/"&gt;Parleys&lt;/a&gt; et en complément de certains supports déjà mis en ligne par certains Speakers, je mets librement à votre disposition les différentes notes que j’ai pu prendre sur mon laptop.&lt;/p&gt;
&lt;p&gt;Les sujets sont variés : du &lt;strong&gt;Machine Learning&lt;/strong&gt; avec Watson, Spark et MMLib, du &lt;strong&gt;Reactive Programming&lt;/strong&gt; avec RxJava et Vert.x, du &lt;strong&gt;Java 9&lt;/strong&gt;, du &lt;strong&gt;Spring 4.1&lt;/strong&gt; ou bien encore du Docker.&lt;/p&gt;
&lt;p&gt;Certaines notes pourront être lues de manière autonome ; je pense par exemple au quickie &lt;a href="wp-content/uploads/2015/04/Devoxx_France_2015-Strat%C3%A9gie_de_mise_en_place_de_revues_de_code.pdf"&gt;Stratégie de mise en place de revues de code&lt;/a&gt; et à la conférence &lt;a href="ploads/2015/04/Devoxx_France_2015-Livrer_chaque_jour_ce_qui_est_pret.pdf"&gt;Livrer chaque jour ce qui est prêt !.&lt;/a&gt; Pour être exploitables en l’état, d’autres notes demanderont à ce que vous ayez assisté à la conférence ou que vous ayez pu récupérer les supports de présentation.&lt;/p&gt;
&lt;p&gt;&lt;a href="wp-content/uploads/2015/04/Keynote-des-organisateurs.jpg"&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="Keynote des organisateurs"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2015/04/Keynote-des-organisateurs.jpg"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="Keynote des organisateurs"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2015/04/Keynote-des-organisateurs.jpg"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>Désendettement du projet ehcache-spring-annotations</title><link>https://javaetmoi.com/2014/12/migration-projet-ehcache-spring-annotations/</link><pubDate>Mon, 01 Dec 2014 05:53:51 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=1273</guid><description>&lt;p&gt;EhCache est sans nul doute le framework open source de gestion de cache applicatif le plus populaire parmi les développeurs Java. Polyvalent, &lt;strong&gt;EhCache&lt;/strong&gt; peut être mis en œuvre dans les différentes couches d’une application web :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="wp-content/uploads/2014/05/logo-spring-highres.png"&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="logo-spring-highres"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2014/05/logo-spring-highres.png"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/a&gt; Persistance : utilisé comme cache de niveau 2 de JPA / Hibernate pour stocker des entités et le résultat des requêtes en base.&lt;/li&gt;
&lt;li&gt;Service métier : mise en cache du résultat d’un service métier ou d’un appel de web service&lt;/li&gt;
&lt;li&gt;Présentation : cache de pages ou de fragments de page HTML&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Habitués à gérer la sécurité et les transactions de manière déclarative à l’aide d’annotations, le projet open source &lt;a href="https://code.google.com/p/ehcache-spring-annotations/"&gt;ehcache-spring-annotations&lt;/a&gt; a fait le bonheur des développeurs Spring en 2010 en introduisant l’ &lt;strong&gt;annotation @Cacheable&lt;/strong&gt;
Hébergé sur Google Code, ce projet n’est aujourd’hui plus maintenu. Il ne supporte pas Spring 4.x. Rattrapant son retard, la version 3.1 du framework Spring a été enrichi de sa propre annotation @Cacheable. Comme à son habitude, Spring permet de s’abstraire de la solution de cache sous-jacente (ex : ConcurrentMap, EhCache, Guava …) en proposant une API générique. Les débuts de cette API ont été difficiles (cf. SPR-10237 à laquelle j’ai participé). Aujourd’hui mature, implémentant la JSR-107 JCache, il n’y a aucune raison pour ne pas migrer dessus.
Relativement court &lt;strong&gt;, ce billet explique pas à pas comment migrer de ehcache-spring-annotations vers le support de cache du framework Spring&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="logo-spring-highres"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2014/05/logo-spring-highres.png"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>L'offre Spring et les bases</title><link>https://javaetmoi.com/2014/11/workshop-spring-1-offre-spring-et-bases/</link><pubDate>Sat, 01 Nov 2014 16:09:11 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=1235</guid><description>&lt;p&gt;Rejoignez les millions de développeurs Spring.
De par sa forte pénétration dans les entreprises, tout développeur Java /JEE a ou aura à travailler sur une application s’appuyant sur Spring. Or Spring dépasse le cadre du simple framework open source.
Cette série de 5 workshops a pour objectif de faire un tour d’horizon de l’écosystème des technologies supportées par Spring avant de se focaliser plus spécifiquement sur certaines d’entre elles.
Retours d’expérience, bonnes pratiques, techniques avancées seront de partie.&lt;/p&gt;
&lt;p&gt;Propulsée dans Java EE 6 avec CDI et plus récemment au sein de JavaScript avec Google Gin, l’injection de dépendance sera au cœur du premier workshop.
Voici le support de présentation du workshop sur Spring que j&amp;rsquo;ai animé en novembre 2011 au sein de ma SSII et que j&amp;rsquo;ai réactualisé avant sa diffusion sur Slideshare.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="//fr.slideshare.net/AntoineRey/workshop-spring-session-1-loffre-spring-et-les-bases" title="Workshop Spring - Session 1 - L&amp;#39;offre Spring et les bases"&gt;Workshop Spring - Session 1 - L&amp;rsquo;offre Spring et les bases&lt;/a&gt;&lt;/strong&gt; from &lt;strong&gt;&lt;a href="//www.slideshare.net/AntoineRey"&gt;Antoine Rey&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Configurez Spring en Java</title><link>https://javaetmoi.com/2014/06/spring-framework-java-configuration/</link><pubDate>Mon, 16 Jun 2014 05:07:42 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=1122</guid><description>Dans ce billet, nous verrons comment &lt;strong&gt;configurer en Java&lt;/strong&gt; le &lt;strong&gt;contexte Spring&lt;/strong&gt; d’une application basée sur &lt;strong&gt;Spring MVC&lt;/strong&gt;, &lt;strong&gt;Spring Security&lt;/strong&gt;, &lt;strong&gt;Spring Data JPA&lt;/strong&gt; et &lt;strong&gt;Hibernate&lt;/strong&gt;, et cela sans utiliser la moindre ligne de XML.&lt;br&gt;Personnellement, je n’ai rien contre la &lt;strong&gt;syntaxe XML&lt;/strong&gt; à laquelle j’étais habitué. D’autant la &lt;strong&gt;verbosité&lt;/strong&gt; de la configuration avait considérablement diminué grâce à l’introduction des &lt;strong&gt;namespaces XML&lt;/strong&gt; et des &lt;strong&gt;annotations&lt;/strong&gt;. Avant d’utiliser la syntaxe Java sur une application d’entreprise, j’étais même sceptique quant aux gains qu’elle pouvait apporter. Aujourd’hui, je comprends mieux son intérêt et pourquoi les projets du portfolio Spring tels &lt;a href="http://spring.io/blog/2014/04/30/spring-integration-4-0-released"&gt;Spring Integration 4.0&lt;/a&gt;, &lt;a href="#ZgotmplZ"&gt;Spring Web Service 2.2&lt;/a&gt; ou bien &lt;a href="http://spring.io/blog/2013/07/03/spring-security-java-config-preview-web-security"&gt;Spring Security 3.2&lt;/a&gt; proposent dans leur dernière version un niveau de configuration Java iso-fonctionnel avec leur équivalent XML. Sans compter que le support de la configuration Java leur ouvre la porte d’une intégration plus poussée à &lt;a href="http://projects.spring.io/spring-boot/"&gt;&lt;strong&gt;Spring Boot&lt;/strong&gt;&lt;/a&gt;, le nouveau fer de lance de Pivotal.&lt;br&gt;</description></item><item><title>14 prises de notes à Devoxx France 2014</title><link>https://javaetmoi.com/2014/04/14-prises-de-notes-a-devoxx-france-2014/</link><pubDate>Wed, 23 Apr 2014 15:28:37 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=1082</guid><description>&lt;p&gt;En attendant que les vidéos des &lt;a href="http://cfp.devoxx.fr/devoxxfr2014"&gt;différentes conférences de l’édition 2014&lt;/a&gt; de Devoxx France soient mises en ligne sur &lt;a href="http://www.parleys.com/"&gt;Parleys&lt;/a&gt; et en complément des &lt;a href="http://www.parleys.com/"&gt;supports&lt;/a&gt; déjà mis en ligne par certains Speakers, je mets librement à votre disposition les différentes notes que j’ai pu prendre sur mon laptop.
Les sujets sont variés : de Docker à Angular JS, en passant par Java 8. Certaines pourront être lues de manière autonome ; je pense par exemple au quickie &lt;a href="wp-content/uploads/2014/04/Outils-pour-manager-une-%C3%A9quipe.pdf"&gt;Outils pour manager une équipe&lt;/a&gt; et à la conférence &lt;a href="wp-content/uploads/2014/04/33-things-your-want-to-do-better.pdf"&gt;33 things your want to do better&lt;/a&gt;. Pour être exploitables en l’état, d’autres notes demanderont à ce que vous ayez assisté à la conférence ou que vous ayez pu récupérer les supports de présentation.&lt;/p&gt;
&lt;p&gt;&lt;a href="wp-content/uploads/2014/04/devoxx-france-2014-les-cast-codeurs.jpg"&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="devoxx-france-2014-les-cast-codeurs"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2014/04/devoxx-france-2014-les-cast-codeurs.jpg"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="devoxx-france-2014-les-cast-codeurs"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2014/04/devoxx-france-2014-les-cast-codeurs.jpg"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>Utilisez Hibernate 4.3 sous JBoss 5 avec Spring 4</title><link>https://javaetmoi.com/2014/04/hibernate4-sous-jboss5-avec-spring4/</link><pubDate>Thu, 10 Apr 2014 18:50:07 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=1051</guid><description>&lt;p&gt;Dans mon &lt;a href="http://javaetmoi.com/2014/04/support-vfs2-jboss5-spring4/" title="Support du VFS 2 de JBoss 5 dans Spring 4"&gt;précédent billet&lt;/a&gt;, je vous expliquais comment réintroduire le support de VFS 2 abandonné dans &lt;strong&gt;Spring Framework 4.0&lt;/strong&gt;. Et ceci, dans l’optique de pouvoir déployer mon application dans le serveur d’application &lt;strong&gt;JBoss 5.1 EAP&lt;/strong&gt;.&lt;br&gt;Outre ce problème survenant lors de la détection de beans Spring dans le classpath, la montée de version de Spring 3.2 à Spring 4 a révélé un autre problème lié au format VFS de JBoss. Cette fois-ci, c’est le framework &lt;strong&gt;Hibernate 4.3&lt;/strong&gt; qui n’arrive pas à détecter les entités JPA du classpath.&lt;/p&gt;
&lt;p&gt;Certifié conforme à Java EE 5, JBoss 5.1 EAP utilise Hibernate 3.3 comme implémentation de JPA 1. Dans mon cas, Hibernate 4.3 est utilisé en mode standalone et est donc directement embarqué dans les librairies de mon EAR. La configuration &lt;strong&gt;JPA 2.1&lt;/strong&gt; est assurée par le support JPA offert par Spring, et plus particulièrement par la classe &lt;em&gt;&lt;a href="https://github.com/spring-projects/spring-framework/blob/v4.0.3.RELEASE/spring-orm/src/main/java/org/springframework/orm/jpa/LocalContainerEntityManagerFactoryBean.java"&gt;LocalContainerEntityManagerFactoryBean&lt;/a&gt;&lt;/em&gt;.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="logo-hibernate"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2014/04/logo-hibernate.png"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>Support du VFS 2 de JBoss 5 dans Spring 4</title><link>https://javaetmoi.com/2014/04/support-vfs2-jboss5-spring4/</link><pubDate>Tue, 01 Apr 2014 04:50:09 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=1032</guid><description>&lt;p&gt;Ce billet solutionne un problème rencontré lors de la &lt;strong&gt;montée de version du famework Spring&lt;/strong&gt; de la version 3.2 à la &lt;strong&gt;version&lt;/strong&gt; &lt;strong&gt;4.0&lt;/strong&gt;. En effet, le déploiement d’une application sous &lt;strong&gt;JBoss 5.1 EAP&lt;/strong&gt; échouait dès l’initialisation du contexte Spring. Plus précisément, une exception était levée lorsque Spring scanne le classpath à la recherche de beans Spring annotés par les annotations @Repository, @Service, @Controller …&lt;br&gt;Comme le montre la pile d’appel complète ci-dessous, l’exception &lt;strong&gt;java.lang.ClassNotFoundException: org.jboss.vfs.VFS&lt;/strong&gt; est encapsulée dans l’exception &lt;strong&gt;java.lang.IllegalStateException: Could not detect JBoss VFS infrastructure&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ce problème ne m’était initialement pas apparu lors des développements sous Eclipse avec le plugin JBoss Tools pour WTP : Spring n’a aucun mai à trouver les beans d’un WAR ou d’un EAR explosé. Cette erreur s’est manifestée lors du déploiement manuel de l’EAR dans le répertoire deploy de JBoss puis du démarrage du serveur par la commande run.bat.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="logo-spring-framework"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2014/04/logo-spring-framework.png"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>Memory Leak du client CXF</title><link>https://javaetmoi.com/2014/02/memory-leak-client-cxf-attachment/</link><pubDate>Sat, 22 Feb 2014 09:28:31 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=977</guid><description>&lt;p&gt;Les tests de charge d’une nouvelle fonctionnalité m’a récemment permis de détecter un comportement inattendu de &lt;strong&gt;CXF&lt;/strong&gt; s’apparentant à une &lt;strong&gt;fuite mémoire&lt;/strong&gt;. Fusion de Celtix et de XFire, le &lt;a href="http://cxf.apache.org/"&gt;framework CXF&lt;/a&gt; propose une implémentation cliente et serveur de web services SOAP et REST. Le comportement suspect concerne la partie &lt;strong&gt;cliente&lt;/strong&gt; d’un &lt;strong&gt;web service SOAP&lt;/strong&gt; avec &lt;strong&gt;pièce-jointes&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Les symptômes ont été observés dans les conditions suivantes. Un tir de charge avec JMeter simule l’upload de fichiers de 4 Mo. Trente utilisateurs connectés simultanément uploadent des fichiers PDF. D’une durée de 5mn, le scénario fonctionnel mettant en jeu l’upload de fichiers est réitéré pendant 3h. A l’issu du tir, aucune erreur technique ou fonctionnelle n’est remontée. Par contre, l’analyse de l’empreinte mémoire est suspecte : non seulement cette nouvelle fonctionnalité a nécessité davantage de mémoire que lors des tirs précédents, mais surtout : &lt;strong&gt;la mémoire n’est jamais libérée&lt;/strong&gt;, même après l’expiration des sessions utilisateurs.&lt;/p&gt;
&lt;p&gt;&lt;a href="wp-content/uploads/2014/02/2014-02-cxf-attachments-memory-leak-2.jpg"&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="2014-02-cxf-attachments-memory-leak-2"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2014/02/2014-02-cxf-attachments-memory-leak-2.jpg"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="2014-02-cxf-attachments-memory-leak-2"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2014/02/2014-02-cxf-attachments-memory-leak-2.jpg"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>DbSetup, une alternative à DbUnit</title><link>https://javaetmoi.com/2013/09/dbsetup-spring-test-vs-dbunit/</link><pubDate>Fri, 06 Sep 2013 16:46:25 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=757</guid><description>&lt;p&gt;Lors du développement de &lt;strong&gt;tests d’intégration&lt;/strong&gt;, j’ai récemment eu besoin de charger une base de données à l’aide de jeux de données. Pour écrire mon premier test, j’ai simplement commencé par écrire un fichier SQL. En un appel de méthode (JdbcTestUtils::executeSqlScript) ou une ligne de déclaration XML (&amp;lt;jdbc:script location=&amp;quot;&amp;quot; /&amp;gt;), Spring m’aidait à charger mes données.&lt;br&gt;Pour tous ceux qui se sont déjà prêtés à l’exercice, maintenir des jeux de données est relativement fastidieux, qui plus en SQL. Cette solution n’était donc pas pérenne.&lt;/p&gt;
&lt;p&gt;Depuis une dizaine d’années, j’utilise régulièrement &lt;a href="http://www.dbunit.org/"&gt;DbUnit&lt;/a&gt; pour tester la couche de persistance des applications Java sur lesquelles j’interviens, qu’elle soit développée avec JDBC, Hibernate ou bien encore JPA. Cette librairie open source est également très appréciable pour tester unitairement des procédures stockées manipulant des données par lot. Pour mon besoin, j’aurais donc pu naturellement me tourner vers cet outil qui a fait ses preuves et dont je suis familier.&lt;/p&gt;
&lt;p&gt;Mais voilà, commençant à apprécier les avantages de la configuration en Java offerte par Spring et les &lt;strong&gt;APIs fluides&lt;/strong&gt; des frameworks FestAssert ou ElasticSearch utilisés sur l’application, l’idée d’ &lt;strong&gt;écrire des jeux de données en Java&lt;/strong&gt; me plaisait bien. Et justement, il y’a quelques temps, l’argumentaire de l’article &lt;a href="http://dbsetup.ninja-squad.com/approach.html"&gt;Why use DbSetup?&lt;/a&gt; ne m’avait pas laissé indifférent. C’était donc l’occasion d’utiliser cette jeune librairie développée par &lt;a href="http://ninja-squad.fr/team"&gt;les français de Ninja Squad&lt;/a&gt; et qui mérite de se faire connaitre, j’ai nommé &lt;strong&gt;&lt;a href="http://dbsetup.ninja-squad.com/"&gt;DbSetup&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Le &lt;a href="http://dbsetup.ninja-squad.com/user-guide.html"&gt;guide utilisateur de DbSetup&lt;/a&gt; étant particulièrement bien conçu, l&amp;rsquo;objectif de cet article n’est pas de vous en faire une simple traduction, mais de vous donner envie de l’essayer et de vous présenter la manière dont je l’ai mis en oeuvre. Celle-ci s’éloigne en effet quelque peu de celle présentée dans la documentation, la faute à mes vieux réflexes d’utilisateur de DbUnit et au bienheureux &lt;strong&gt;&lt;a href="http://xunitpatterns.com/Transaction%20Rollback%20Teardown.html"&gt;rollback pattern&lt;/a&gt;&lt;/strong&gt; de Spring.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="test-database"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2013/09/test-database.jpg"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>Architecture d’un middle d’indexation</title><link>https://javaetmoi.com/2013/02/architecture-middle-indexation-elasticsearch/</link><pubDate>Tue, 26 Feb 2013 10:35:42 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=604</guid><description>Dans &lt;a href="http://javaetmoi.com/2012/12/parallelisation-de-traitements-batchs-spring-batch/" title="Parallélisation de traitements batchs"&gt;un précédent billet&lt;/a&gt;, je vous ai présenté les solutions mises en œuvre sur un projet pour paralléliser un batch d’indexation alimentant un moteur de recherche d’entreprise. Utilisée pour initialiser l’index de recherche puis le resynchroniser quotidiennement, la technique d’intégration par batch ne permet cependant pas d’indexer les données au fil de l’eau. Ce billet aborde précisément cet aspect. En effet, le fil de l’eau ou le quasi temps réel fut dès le départ une exigence forte du métier. Recherches instantanées et auto-complétion révolutionnent le traditionnel formulaire de recherche mettant plusieurs secondes à renvoyer les résultats. Mais au prix de faire des recherches sur des données pouvant dater de J-1 ? Ce n’était pas acceptable ! Un middle d’indexation fut la réponse apportée.</description></item><item><title>Enterprise Spring Integration Certification Mock Exam</title><link>https://javaetmoi.com/2012/10/enterprise-spring-integration-certification-mock-exam/</link><pubDate>Sat, 27 Oct 2012 17:29:57 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=324</guid><description>&lt;p&gt;Last month, I passed the &lt;a href="http://mylearn.vmware.com/mgrReg/plan.cfm?plan=31113&amp;amp;ui=www_cert"&gt;Enterprise Integration with Spring&lt;/a&gt; exam (EIwS 1.x) with a score of 90%. This test is also known as Certified Enterprise Integration Specialist exam. Before passing this exam, you have to attend &lt;a href="http://mylearn.vmware.com/mgrreg/courses.cfm?ui=www_edu&amp;amp;a=one&amp;amp;id_subject=17833"&gt;Enterprise Integration with Spring training&lt;/a&gt; from SpringSource or a Certified Partner.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt=""
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2012/09/CertifiedSpring_EnterpriseIntegrationSpecialist.png"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;In my last blog entry, I have published a &lt;a href="http://javaetmoi.com/2012/09/certified-spring-enterprise-integration-specialist-study-notes/"&gt;french study guide / notes&lt;/a&gt; to the exam. Since, I received a few emails asking me some materials in English.&lt;/p&gt;
&lt;p&gt;Opposed to the Spring Core Certification, I didn’t find any mock exams for the . So I decided to create a mock exam like I did in my &lt;a href="http://javaetmoi.com/2012/02/core-spring-3-0-certification-mock-exam/"&gt;Core Spring 3.0 Certification Mock Exam blog entry&lt;/a&gt;. The questions are close to the real Enterprise Integration with Spring exam and I hope will help you in practicing for the test or to test your Spring Integration proficiently. I have tried to keep my exam accurate, based on my real exam-experience.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="Enterprise Spring Integration Certification Mock Exam"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2012/09/CertifiedSpring_EnterpriseIntegrationSpecialist.png"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>Certified Spring Enterprise Integration Specialist Study Notes</title><link>https://javaetmoi.com/2012/09/certified-spring-enterprise-integration-specialist-study-notes/</link><pubDate>Sat, 29 Sep 2012 11:18:22 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=230</guid><description>&lt;p&gt;En l’espace de 8 mois, me voici doté d’une deuxième certification Spring. Après la certification Spring Core dont je vous ai fait écho dans mon tout &lt;a href="http://javaetmoi.com/2012/02/core-spring-3-0-certification-mock-exam/" title="Core Spring 3.0 Certification Mock Exam"&gt;premier billet&lt;/a&gt;, j’ai eu l’opportunité de préparer la certification Spring Integration Specialist.&lt;/p&gt;
&lt;p&gt;&lt;a href="wp-content/uploads/2012/09/CertifiedSpring_EnterpriseIntegrationSpecialist.png"&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt=""
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2012/09/CertifiedSpring_EnterpriseIntegrationSpecialist.png"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/a&gt; Comme à l’accoutumée avec les certifications Spring, la &lt;a href="http://www.zenika.com/formation_enterprise_integration_avec_spring.html" title="Formation Enterprise Integration avec Spring"&gt;formation officielle Spring Enterprise Integration&lt;/a&gt; est pré-requise. Elaborée par SpringSource et dispensée par Zenika, cette formation couvre de nombreux sujets basés sur Spring Framework 3 et différents projets du Portfolio Spring :&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="Certified Spring Enterprise Integration Specialist Study Notes"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2012/09/CertifiedSpring_EnterpriseIntegrationSpecialist.png"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>Spring Batch s'auto-nettoie</title><link>https://javaetmoi.com/2012/06/sprint-batch-sauto-nettoie/</link><pubDate>Tue, 26 Jun 2012 18:49:09 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=187</guid><description>&lt;p&gt;Lorsque vous mettez en œuvre &lt;strong&gt;&lt;a href="http://static.springsource.org/spring-batch/" title="Page d&amp;#39;accueil du projet Spring Batch"&gt;Spring Batch&lt;/a&gt;&lt;/strong&gt; pour réaliser des traitements par lots, vous avez le choix d’utiliser &lt;strong&gt;une implémentation de &lt;em&gt;JobRepository&lt;/em&gt;&lt;/strong&gt; soit &lt;strong&gt;en mémoire&lt;/strong&gt; soit &lt;strong&gt;persistante&lt;/strong&gt;. L’avantage de cette dernière est triple :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Conserver un &lt;strong&gt;historique des différentes exécutions&lt;/strong&gt; de vos instances de jobs.&lt;/li&gt;
&lt;li&gt;Pouvoir &lt;strong&gt;suivre en temps réel le déroulement de votre batch&lt;/strong&gt; via, par exemple, l’excellent &lt;a href="http://static.springsource.org/spring-batch-admin/" title="Page d&amp;#39;accueil du projet Spring Batch Admin"&gt;Spring Batch Admin&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Avoir la possibilité de &lt;strong&gt;reprendre un batch&lt;/strong&gt; là où il s’était arrêté en erreur.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;La contrepartie d’utiliser un JobRepository persistant est de devoir faire reposer le batch sur une &lt;strong&gt;base de données&lt;/strong&gt; relationnelles. Le schéma sur lequel s’appuie Spring Bath est composé de &lt;strong&gt;6 tables&lt;/strong&gt;. Leur MPD est disponible dans l’ &lt;a href="http://static.springsource.org/spring-batch/reference/html/metaDataSchema.html" title="Appendix B. Spring Batch Meta-Data Schema"&gt;annexe B. Meta-Data Schema&lt;/a&gt; du &lt;a href="http://static.springsource.org/spring-batch/reference/html/" title="Manuel de référence de Spring Batch au format HTML"&gt;manuel de référence de Spring Batch&lt;/a&gt;. SpringSource faisant bien les choses, les scripts DDL de différentes solutions du marché (ex : MySQL, Oracle, DB2, SQL Server, Postgres, H2 …) sont disponibles dans le package org.springframework.batch.core du JAR spring-batch-core-xxx.jar&lt;br&gt;Qui dit base de données, dit &lt;strong&gt;dimensionnement&lt;/strong&gt; de cette dernière. L’ &lt;strong&gt;espace disque requis&lt;/strong&gt; est alors &lt;strong&gt;fonction&lt;/strong&gt; du &lt;strong&gt;nombre d’exécutions&lt;/strong&gt; estimé, de la &lt;strong&gt;nature des informations contextuelles persistées&lt;/strong&gt; et de la &lt;strong&gt;durée de rétention&lt;/strong&gt; des données. Cette démarche prend tout son sens lorsqu’une instance de base de données est dédiée au schéma de Spring Batch. En faisant quelques hypothèses (ex : sur le taux d’échec) et en mesurant le volume occupé sur plusieurs exécutions des batchs, il est possible de prévoir assez finement l’espace occupé par les données.&lt;/p&gt;
&lt;p&gt;A moins de disposer de ressources infinies ou de n’avoir qu’un seul batch annuel, il est fréquent de fixer une durée de rétention de l’historique. Première option : demander à l’équipe d’exploitation de régulièrement lancer un script SQL de purge. Deuxième option : &lt;strong&gt;utiliser Spring Batch pour purger ses propres données&lt;/strong&gt; !!&lt;/p&gt;</description></item><item><title>Core Spring 3.0 Certification Mock Exam</title><link>https://javaetmoi.com/2012/02/core-spring-3-0-certification-mock-exam/</link><pubDate>Sun, 26 Feb 2012 16:22:40 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=18</guid><description>&lt;p&gt;Le &lt;strong&gt;framework Spring&lt;/strong&gt; est à l’honneur dans le premier article de ce tout jeune blog. En effet, début février j’ai eu l’opportunité de passer la &lt;strong&gt;&lt;a href="http://www.springsource.com/training/certification/springprofessional" title="SpringSource Certified Spring Professionnal"&gt;Certification Core Spring 3.0&lt;/a&gt;&lt;/strong&gt;. Et par ce billet, je tenais faire part de mon &lt;strong&gt;retour d’expérience&lt;/strong&gt; mais surtout vous offrir librement un &lt;strong&gt;examen blanc&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Comme pré-requis pour passer la certification, sachez tout d’abord qu’il est nécessaire de suivre la &lt;strong&gt;formation officielle de 4 jours&lt;/strong&gt; estampillée SpringSource. En France, elle est exclusivement assurée par le cabinet d’architecture Zenika. Mon formateur fut l’un de co-auteurs du très bon livre Spring par la Pratique.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="Core Spring 3.0 Certification Mock Exam"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2012/02/CertitfiedSpring_Professional.png"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/p&gt;</description></item></channel></rss>