Sur certains projets, j'ai eu l'occasion de voir des fichiers de configuration Spring de ce type :
<import resource="monitoring-environnement1.xml"/>
<import resource="monitoring-environnement2.xml"/>
<import resource="monitoring-environnement3.xml"/>
Et bien évidemment, chacun des fichiers de configurations importés était tous semblables, avec comme seule différence les noms de beans Spring ou des valeurs de propriétés.
Si demain, un nouvel environnement devait être ajouté, je vous le donne dans le mille : un copier / coller, un s/environnement1/nouvel-environnement/g !
Même si cela fonctionne bien, ce n'est pas la solution la plus propre : Si le système de monitoring devait être modifié, il faudrait éditer X fichiers, avec le risque d'oublier un fichier, ou un valeur...
Une première solution possible serait de remplacer ces imports par un namespace dédié au monitoring. Il suffirait dès lors d'utiliser une configuration de ce type :
<monitoring:environnement name="environnement1"/>
<monitoring:environnement name="environnement2"/>
C'est déjà beaucoup plus propre, mais cette solution n'est pas des plus pratiques :
La configuration "générique" sera réalisée via une API spécifique à Spring, que peu de développeurs connaissent ( BeanDefinitionParser, ParserContext, BeanDefinitionRegistry, ..), ce qui rends toute modification assez complexe
Le namespace sera dédié au monitoring ! Si le domaine des fichiers était tout autre, il faudrait développer un nouveau namespace.
Le namespace va cacher aux utilisateurs les beans réellement instanciés.
Bref, c'est déjà mieux mais pas encore suffisamment claire et simple.
Afin de répondre à ces problématique, il est possible de créer un namespace beaucoup plus générique. Celui qui permettrait d'importer une configuration classique (un modèle), mais en remplaçant certaines variables par des valeurs.
Le modèle serait un fichier de configuration Spring tout à fait compréhensible par des habitués de Spring, mais dans laquelle des variables seraient définies :
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean name="scheduledTimeTask.${environnement}" class="org.springframework.scheduling.timer.ScheduledTimerTask">
<property name="timerTask" ref="monitoringTask.${environnement}"/>
<property name="delay" value="1000"/>
<property name="period" value="1000"/>
</bean>
<bean name="timer.${environnement}" class="org.springframework.scheduling.timer.TimerFactoryBean">
<property name="scheduledTimerTasks">
<list>
<ref bean="scheduledTimeTask.${environnement}"/>
</list>
</property>
</bean>
<bean name="monitoringTask.${environnement}" class="be.hikage.springtemplate.MonitoringTimerTask">
<property name="url" value="${${environnement}.url}"/>
</bean>
</beans>
Ici, ${environnement}, est une variable qui sera définie lors de l'importation du modèle :
<hikage:import-template location="template-monitoring.xml">
<hikage:variable name="environnement" value="environnement1"/>
</hikage:import-template>
Cette solution possède donc plusieurs avantages :
En cas de modification du modèle, un seul fichier devra être modifié.
Le namespace pourra être utilisé pour différent domaine ( monotoring, etc .. )
Le modèle sera modifiable par n'importe quel développeur connaissant Spring, et tout à fait lisible
Ce projet est disponible sous licence Apache 2 sur http://code.google.com/p/spring-import-template/
Vous devez être identifié pour poster un commentaire.
Trois ans après la première édition, le tout premier livre francophone sur Spring et son portfolio se voit être mis à jour.
Et comme pour la première fois, ce livre couvre des sujets inédits comme Spring Dm et la technologie OSGi, ou le nouveau serveur Spring Dm Server permettant de tirer parti de cette dernière.
Mais ce n'est pas tout, il est l'un des tout premiers livres à couvrir Spring 3.0 ( toute langues confondues, ce qui n'est pas rien ! ). Pour rappel, cette version n'est pas encore officiellement sortie.
D'autres sujets ont de leur coté été mis à jour, c'est le cas de Spring MVC, se basant maintenant sur le jeu d'annotations ou le nouvellement nommé Spring Security, successeur de Acegi.
Spring Batch fait aussi parti des sujets traités.
Bref, un pur bonheur pour ceux qui ne connaissent pas Spring, mais aussi un excellent livre pour ceux utilisant Spring 2.0 et voulant se remettre à niveau.
Quelques informations :
Sortie eBook : 23 Juin 2009, disponible sur izibook
Sortie papier : le 7 juillet 2009
Critique du livre, en avant première
Bonne lecture et n'hésitez pas à venir faire vos commentaires
Vous devez être identifié pour poster un commentaire.
Il y a quelques mois, Pearson Education avait pris contact avec l'équipe Java afin de les aider à choisir un livre Spring à traduire.
Les deux livres proposés furent : Pro Spring 2.5 et Spring Recipes : A problem-Solution approach
Après lecture des deux ouvrages dans leur langue d'origine, il est resorti que le meilleur choix était Spring Recipes. Sa particuliarité est de ne pas présenter Spring à la manière d'une documentation mais plus en exposant des problèmes, et en proposant une solution pour laquelle Spring est intégrée, et pourquoi il l'est.
Une bonne nouvelle pour les personnes réfractaires à l'anglais, Pearson vient d'annoncer la disponibilité de la traduction. Celle-ci comporte les deux premières parties de l'ouvrage original, traduites par Hervé Soulard.
Pour plus d'information :
Présentation sur le site de Pearson Education
Table des matières
Extrait du chapitre 1 - Inversion du contrôle
Extrait du chapitre 8 - Gestion des transactions
Annonce sur le site de SpringSource
Vous devez être identifié pour poster un commentaire.
Lors que les termes Injection de dépendances sont cités, deux projets sont souvent pointés du doigts : Spring et Guice.
Vous devez être identifié pour poster un commentaire.
Bien que n'ayant pas pu être présent cette année à SpringOne, voici les deux principales annonces :
La première concerne SpringSource Tool Suite. Cet packaging d'Eclipse proposant divers outils pratique pour le développement avec Spring mais aussi OSGi avec Spring dm Server est proposé gratuitement. Avant cela, il était disponible uniquement pour les clients du support.
La deuxième concerne un nouveau projet dans le portfolio Spring : Spring Roo ( prononcez Rou, comme Kango-roo ;-) ).
Derrière ce nom farfelu se cache un Grails ( ou un Rail ) pour Java !
N'ayant pas encore eu le temps de jouer avec, je vous conseille la lecture de cet article ou bien celui-ci ( en anglais, mais écrit par un des développeur de Spring Roo ).
Bonne lecture !
Vous devez être identifié pour poster un commentaire.
Il y a quelques jours, SpringSource à mis à jour la partie de son site correspondant aux formation et certifications.
Ce programme s'appelle désormais SpringSource University, qui comprends des formations sur Spring, mais aussi sur Groovy, Grails et Apache HTTPD et Tomcat.
Vous devez être identifié pour poster un commentaire.
La seconde Milestone de Spring BlazeDS est annoncée
Vous devez être identifié pour poster un commentaire.
Un peu plus de 2 mois après la première milestone, SpringSource annonce la Milestone 2 de Spring Framework 3.0
Pour rappel, cette version se base sur Java 5 mais reste compatible J2EE 1.4 et JEE 5.
Vous devez être identifié pour poster un commentaire.
Dans des projets d'entreprises, nous sommes très rapidement confrontés à la nécessité d'envoyer un email.
Que ce soit pour notifier une commande, pour envoyer un mot de passe lors de la création d'un utilisateur ou encore pour envoyer une alerte lorsqu'un problème de traitement survient.
En Java, l'envoi d'email passe par l'API JavaMail. Celle-ci est très puissante, mais n'est pas des plus simple à utiliser.
Mais si par chance, vous travaillez déjà avec Spring Framework dans votre projet, vous pourrez facilement envoyer des emails sans connaitre JavaMail.
Vous devez être identifié pour poster un commentaire.
Attendue depuis plusieurs semaines déjà, la première version milestone de Spring 3.0 est enfin annoncée.
Pour rappel, cette version se base sur Java 5 mais reste compatible J2EE 1.4 et JEE 5.
Vous devez être identifié pour poster un commentaire.
, Hikage Bonsoir à tous,
Voilà quelques heures que je viens de rentrer de Paris, ou plus exactement des Rencontres Spring.
Je vous ferai sous peu un feedback plus complet des conférences, mais je tenais à vous faire part des informations essentielles rapidement !
Vous devez être identifié pour poster un commentaire.
, Hikage Vous devez être identifié pour poster un commentaire.
Copyright © 2000-2012 - www.developpez.com