<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog de Baptiste Wicht &#187; Spring</title>
	<atom:link href="https://blog.developpez.com/wichtounet/pcategory/programmation/spring/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/wichtounet</link>
	<description></description>
	<lastBuildDate>Fri, 25 Nov 2011 10:34:42 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>JTheque suit la voie OSGi</title>
		<link>https://blog.developpez.com/wichtounet/p8674/jtheque/jtheque_suit_la_voie_osgi</link>
		<comments>https://blog.developpez.com/wichtounet/p8674/jtheque/jtheque_suit_la_voie_osgi#comments</comments>
		<pubDate>Tue, 02 Mar 2010 20:24:15 +0000</pubDate>
		<dc:creator><![CDATA[Baptiste Wicht]]></dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[JTheque]]></category>
		<category><![CDATA[Spring]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Bonsoir, Une petite nouvelle pour l&#8217;avancement du projet JTheque. J&#8217;ai commencé à migrer JTheque Core vers un environnement OSGi et Spring Dynamic Modules. Le core sera désormais séparés en plusieurs bundles par fonctionnalité. Les modules seront aussi des bundles OSGi. Ce changement permettra d&#8217;améliorer la modularité des différents éléments du core et de suivre une voie plus standarde pour la création de modules. J&#8217;espère que cela permettra d&#8217;améliorer la qualité de JTheque Core. C&#8217;est également [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Bonsoir, </p>
<p>Une petite nouvelle pour l&rsquo;avancement du projet JTheque. </p>
<p>J&rsquo;ai commencé à migrer JTheque Core vers un environnement OSGi et Spring Dynamic Modules. Le core sera désormais séparés en plusieurs bundles par fonctionnalité. </p>
<p>Les modules seront aussi des bundles OSGi. </p>
<p>Ce changement permettra d&rsquo;améliorer la modularité des différents éléments du core et de suivre une voie plus standarde pour la création de modules. </p>
<p>J&rsquo;espère que cela permettra d&rsquo;améliorer la qualité de JTheque Core. C&rsquo;est également une occasion pour moi d&rsquo;apprendre à utiliser OSGi et Spring DM. </p>
<p>Baptiste </p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Premières impressions avec IntelliJ Idea 9 Beta</title>
		<link>https://blog.developpez.com/wichtounet/p8289/divers/premieres_impressions_avec_intellij_idea</link>
		<comments>https://blog.developpez.com/wichtounet/p8289/divers/premieres_impressions_avec_intellij_idea#comments</comments>
		<pubDate>Fri, 06 Nov 2009 13:12:54 +0000</pubDate>
		<dc:creator><![CDATA[Baptiste Wicht]]></dc:creator>
				<category><![CDATA[Divers]]></category>
		<category><![CDATA[IntelliJ Idea]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Spring]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Fervent utilisateur d&#8217;IntelliJ Idea depuis un moment déja, je me suis empressé de télécharger la beta une fois sortie pour tester cela et je ne suis pas déçu Au niveau des performances, JetBrains a tenu sa promesse, la nouvelle version démarre plus rapidement, freeze beaucoup moins et est plus réactive. Au niveau de l&#8217;interface, il n&#8217;y a apparemment pas d&#8217;énormes changements. Certaines barres d&#8217;outils ont été revues de manière plus logique et on trouve plus [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Fervent utilisateur d&rsquo;IntelliJ Idea depuis un moment déja, je me suis empressé de télécharger la beta une fois sortie pour tester cela et je ne suis pas déçu <img src="https://blog.developpez.com/wichtounet/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p>
<p>Au niveau des performances, JetBrains a tenu sa promesse, la nouvelle version démarre plus rapidement, freeze beaucoup moins et est plus réactive. </p>
<p>Au niveau de l&rsquo;interface, il n&rsquo;y a apparemment pas d&rsquo;énormes changements. Certaines barres d&rsquo;outils ont été revues de manière plus logique et on trouve plus facilement ce que l&rsquo;on veux. </p>
<p>La vue &laquo;&nbsp;Project&nbsp;&raquo; a été revue pour afficher la hiérarchie des modules pour un projet Maven, ce qui est assez agréable. </p>
<p>Les vues de configuration possèdant une longue zone de texte ont été revues pour n&rsquo;avoir de barre de défilement que sur la zone de texte, ce qui permet de garder en vue les options de la colonne de gauche constamment. </p>
<p>Mais sinon, pas de grosses révolutions de ce côté-là. </p>
<p>Au niveau des inspections, la vue a été allégée est plus agréable, mais surtout, et plus important, les inspections ont été améliorées. Ainsi à inspection égale, on trouve plus d&rsquo;erreurs. En plus de cela, de nouvelles inspections ont été ajoutées, notamment au niveau de Maven et OSGi. </p>
<p>En plus de cela, on voit maintenant l&rsquo;apparition d&rsquo;un correcteur orthographique des plus pratiques. Ce dernier permet de vérifier l&rsquo;orthographe dans les commentaires, les noms de variables, les noms des méthodes, les fichiers annexes, &#8230; C&rsquo;est très pratique surtout pour quelqu&rsquo;un comme moi qui ne suis pas de langue anglaise mais qui documente en anglais. De base, seul un dictionnaire anglais est fourni, mais il est possible de rajouter des dictionnaires au format .dic. </p>
<p>Et enfin, une amélioration certaines de performances et de l&rsquo;efficacité du plugin Subversion <img src="https://blog.developpez.com/wichtounet/wp-includes/images/smilies/icon_biggrin.gif" alt=":D" class="wp-smiley" /></p>
<p>C&rsquo;est tout ce que j&rsquo;ai pu constater pour le moment en n&rsquo;utilisant que tout ce qui est Java SE. </p>
<p>Sinon, dans ce qui a l&rsquo;air intéressant, mais que je n&rsquo;ai pas encore testé : </p>
<ul>
<li>La gestion de contexte : On peut enregistrer des contextes, par exemple développement sur telle ou telle branche, modules, &#8230; En enregistrant un contexte, on enregistre les éditeurs ouverts, les breakpoints, les objets déroulés dans la vue &laquo;&nbsp;Project&nbsp;&raquo;, &#8230;</li>
<li>Le développement avec OSGi</li>
</ul>
<p>Pour le moment, je suis en tout cas très satisfait de cette nouvelle mouture <img src="https://blog.developpez.com/wichtounet/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utiliser des fichiers UTF-8 pour l&#8217;internationalisation</title>
		<link>https://blog.developpez.com/wichtounet/p8236/programmation/java/utiliser_des_fichiers_utf_8_pour_l_inter</link>
		<comments>https://blog.developpez.com/wichtounet/p8236/programmation/java/utiliser_des_fichiers_utf_8_pour_l_inter#comments</comments>
		<pubDate>Sun, 25 Oct 2009 22:42:15 +0000</pubDate>
		<dc:creator><![CDATA[Baptiste Wicht]]></dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Spring]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Comme vous le savez peut-être l&#8217;internationalisation à base de ResourceBundle ne supporte que des fichiers .properties encodé en ISO-8859-1, il faut donc encoder les caractères spéciaux sous la forme \uxxx ce qui n&#8217;est pas très lisible lorsque vous utilisez des languages comme l&#8217;arabe ou le chinois. De plus, si vous voulez ou devez utiliser des fichiers .properties encodés en UTF-8 vous êtes bloqués dès que vous devez utiliser des caractères spéciaux. Une première solution est [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Comme vous le savez peut-être l&rsquo;internationalisation à base de ResourceBundle ne supporte que des fichiers <strong>.properties</strong> encodé en ISO-8859-1, il faut donc encoder les caractères spéciaux sous la forme \uxxx ce qui n&rsquo;est pas très lisible lorsque vous utilisez des languages comme l&rsquo;arabe ou le chinois. De plus, si vous voulez ou devez utiliser des fichiers .properties encodés en UTF-8 vous êtes bloqués dès que vous devez utiliser des caractères spéciaux. </p>
<p>Une première solution est de passer par des fichiers XML en spécifiant l&rsquo;encodage UTF-8. </p>
<p>Néanmoins, Spring propose une solution avec la classe <strong>ReloadableResourceBundleMessageSource</strong>. En effet, avec cette classe on peut spécifier l&rsquo;encodage utilisé pour les fichiers directement dans le mesageSource. En plus de cela, cette classe suppporte également le rechargement des fichiers properties soit à intervalle régulier soit en utilisant la méthode <em>clearCache()</em>. </p>
<p>Il faut faire attention en passant à cette classe que les liens vers le(s) basename(s) se fait en utilisant des ressources Spring, donc en suivant la nomenclature de ces dernières. </p>
<p>Voici un exemple d&rsquo;utilisation avec Spring :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;bean id=&quot;messageSource&quot; class=&quot;org.springframework.context.support.ReloadableResourceBundleMessageSource&quot;&gt; <br />
&nbsp; &nbsp;&lt;property name=&quot;basenames&quot;&gt; <br />
&nbsp; &nbsp; &nbsp; &lt;list&gt; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;value&gt;classpath:org/project/i18n/messages&lt;/value&gt; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;value&gt;classpath:org/project/i18n/errors&lt;/value&gt; <br />
&nbsp; &nbsp; &nbsp;&lt;/list&gt; <br />
&nbsp; &nbsp;&lt;/property&gt; <br />
&nbsp; &nbsp;&lt;property name=&quot;cacheSeconds&quot; value=&quot;-1&quot; /&gt; <br />
&nbsp; &nbsp;&lt;property name=&quot;fileEncodings&quot; value=&quot;UTF-8&quot; /&gt; <br />
&nbsp; &nbsp;&lt;property name=&quot;defaultEncoding&quot; value=&quot;UTF-8&quot; /&gt; <br />
&lt;/bean&gt;</div></div>
<p>Mettre cacheSeconds à -1 permet d&rsquo;indiquer de ne pas chercher à recharger les fichiers .properties. </p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Configurer Spring de manière exhaustive sans XML avec JavaConfig</title>
		<link>https://blog.developpez.com/wichtounet/p7505/programmation/java/configurer_spring_de_maniere_exhaustive</link>
		<comments>https://blog.developpez.com/wichtounet/p7505/programmation/java/configurer_spring_de_maniere_exhaustive#comments</comments>
		<pubDate>Mon, 20 Apr 2009 12:18:54 +0000</pubDate>
		<dc:creator><![CDATA[Baptiste Wicht]]></dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Spring]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Depuis un moment, j&#8217;utilise Spring sans XML en Java SE comme djo-mos l&#8217;a presenté avec un ClassPathBeanDefinitionScanner. Toutes mes classes étaient annotés avec Service, Component, Repository pour être détectés au scan et j&#8217;ajoutais aussi directement des beans dans le context. Cela marche très bien, mais on est vite assez limité, par exemple si on veut utiliser AOP, Spring Transaction, &#8230; J&#8217;ai donc cherché sur internet une solution et je suis tombé sur une perle : [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Depuis un moment, j&rsquo;utilise Spring sans XML en Java SE comme djo-mos <a href="http://blog.developpez.com/djo-mos/p5346/java/spring/spring-framework/de-la-di-avec-spring-2-5-sans-xml-java-s/#more5346">l&rsquo;a presenté</a> avec un ClassPathBeanDefinitionScanner. </p>
<p>Toutes mes classes étaient annotés avec Service, Component, Repository pour être détectés au scan et j&rsquo;ajoutais aussi directement des beans dans le context. Cela marche très bien, mais on est vite assez limité, par exemple si on veut utiliser AOP, Spring Transaction, &#8230;</p>
<p>J&rsquo;ai donc cherché sur internet une solution et je suis tombé sur une perle : Spring JavaConfig, développé par SpringSource</p>
<p><span id="more-142"></span></p>
<p>Cette fois, on remplace le fichier de configuration XML par une classe annnotée avec @Configuration. C&rsquo;est dans cette classe qu&rsquo;on va déclarer nos beans. </p>
<p>Voici un exemple de classe :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">@Configuration(defaultLazy = Lazy.TRUE) <br />
@ImportXML(&quot;classpath:test/datasource-config.xml&quot;) <br />
@ComponentScan(&quot;test.services&quot;) <br />
@AnnotationDrivenTx(transactionManager=&quot;txManager&quot;) <br />
public class ApplicationConfig { <br />
&nbsp; &nbsp; @Bean <br />
&nbsp; &nbsp; public Bar bar() { <br />
&nbsp; &nbsp; &nbsp; &nbsp; return new Bar(); <br />
&nbsp; &nbsp; } <br />
&nbsp;<br />
&nbsp; &nbsp; @Bean <br />
&nbsp; &nbsp; public PlatformTransactionManager txManager() { <br />
&nbsp; &nbsp; &nbsp; &nbsp; return new DataSourceTransactionManager(dataSource()); <br />
&nbsp; &nbsp; } <br />
}</div></div>
<p>Il est intéressant de développer les choses suivantes : </p>
<ul>
<li>@Configuration(defaultLazy = Lazy.TRUE) : Toutes les classes de configuration doivent être annotées de cette façon pour être comprises pour comme configuration Spring. On peut spécifier des paramètres de Spring via les attributs de l&rsquo;annotation, comme par exemple utiliser une initialisation lazy pour la création des beans</li>
<li>@ImportXML(&laquo;&nbsp;classpath:test/datasource-config.xml&nbsp;&raquo;) : Permet d&rsquo;importer le contenu d&rsquo;un fichier de config XML</li>
<li>@ComponentScan(&laquo;&nbsp;test.services&nbsp;&raquo;) : Permet de scanner le contenu du package test.services</li>
<li>@AnnotationDrivenTx(transactionManager=&nbsp;&raquo;txManager&nbsp;&raquo;) : Permet d&rsquo;utiliser Spring transaction avec les annotations et de déclarer le transaction manager. </li>
<li>@Bean : Permet de déclarer un bean. Le nom de la méthode sera le nom du bean. </li>
</ul>
<p>On peut ensuite obtenir le contexte de la manière suivante : </p>
<p><code class="codecolorer text default"><span class="text">JavaConfigApplicationContext context = new JavaConfigApplicationContext(ApplicationConfig.class);</span></code></p>
<p>et l&rsquo;utiliser comme n&rsquo;importe quel applicationContext habituel <img src="https://blog.developpez.com/wichtounet/wp-includes/images/smilies/icon_wink.gif" alt=";)" class="wp-smiley" /></p>
<p>Dans un soucis de modularité, on peut également passer plusieurs classes au constructeur de JavaConfigApplicationContext. </p>
<p>Cette librairie a quelques prérequis : </p>
<ul>
<li>Java 5.0 or higher</li>
<li>Spring 2.5.6 or higher</li>
<li>AspectJ 1.6.2 or higher</li>
<li>CGLIB 2.1.3</li>
</ul>
<p>Cette librairie est disponible en version 1.0.0.M4. </p>
<p>Personnellement, je trouve cette façon de faire très élégante. On peut faire tout ce qu&rsquo;il y a dans un fichier XML de manière programmatique, pour ceux qui préfère la méthode programmatique, je trouve que c&rsquo;est très intéressant <img src="https://blog.developpez.com/wichtounet/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p>
<p>Pour plus d&rsquo;infos, je vous inviter à consulter la page officielle : http://www.springsource.org/javaconfig</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>
