Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
Spring 3.1                    Environnements,                  Sources de propriétés,                         ProfilsFabie...
Notion d’environnement dans Spring     Les notions d’environnement, de sources de      propriétés et de profils sont des ...
Sources de propriétés     On connaît tous dans Spring, le fameux      property placeholder :    <context:property-placeho...
Sources de propriétés     Sources de propriétés proposées par Spring :           Properties : un fichier de propriétés  ...
Sources de propriétés     Un environnement contient une liste de sources de      propriétés :           Standard :      ...
Sources de propriétés     Il est possible de créer sa propre source de      propriétés :    public class MyPropertySource...
Environnement & sources de propriétés     Utilisation des propriétés dans Spring :           Propriété de type « SystemP...
Profils     Concept :          Définir pour un même bean (de même identifiant),           une configuration par profil. ...
Profils                  application-context.xml                 Service1          Service2              Profil « test »  ...
Profils      application-context.xml :     <bean class="sample.PersonDao">         <constructor-arg ref="dataSource" />  ...
Profils      Définir le(s) profil(s) actif(s) :            Par system property :     -Dspring.profiles.active="prod"    ...
Profils      Définir le(s) profil(s) actif(s) :            Par code java :     ctx.getEnvironment().setActiveProfiles("t...
DEMO13
Conclusion      Sources de propriétés :            Moyen unifié de déclarer des propriétés, quelqu’en             soit l...
Prochain SlideShare
Chargement dans…5
×

Environnements, Sources de propriétés et Profils avec Spring 3.1

1 384 vues

Publié le

Présentation d'une des nouveautés de Spring 3.1 : l'abstraction d'environnement, avec les profils et les sources de propriétés

Publié dans : Technologie
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Environnements, Sources de propriétés et Profils avec Spring 3.1

  1. 1. Spring 3.1 Environnements, Sources de propriétés, ProfilsFabien Baligand
  2. 2. Notion d’environnement dans Spring  Les notions d’environnement, de sources de propriétés et de profils sont des nouveautés de Spring 3.1  L’environnement correspond au type de conteneur qui exécute votre application.  Spring 3.1 gère les environnements suivants:  Standard : une simple application java standalone  StandardServlet : une application web dans un conteneur web  StandardPortlet : une portlet dans un conteneur de portlets2
  3. 3. Sources de propriétés  On connaît tous dans Spring, le fameux property placeholder : <context:property-placeholder location="env.properties"/>  Cela permet notamment de définir des propriétés d’environnement positionnées dans un fichier properties, avec surcharge éventuelle dans les propriétés système.  Utilisation : <property name="driverClass" value="${db.driver}"/>  Spring 3.1 reprend ce principe et l’abstrait en créant la notion de source de propriétés (PropertySource).3
  4. 4. Sources de propriétés  Sources de propriétés proposées par Spring :  Properties : un fichier de propriétés  SystemEnvironment : les propriétés système de la VM  ServletContext : les paramètres du contexte web (context- param dans web.xml)  ServletConfig : les paramètres de la servlet ou du filtre (init-param dans web.xml)  Jndi : les entrées JNDI de votre application  CommandLine : les paramètres d’appel de l’application  PortletConfig : les paramètres de déclaration de la portlet  Et d’autres encore…4
  5. 5. Sources de propriétés  Un environnement contient une liste de sources de propriétés :  Standard :  Propriétés système de la JVM  Propriétés système de l’OS  StandardServlet :  Standard  ServletConfig  ServletContext  Jndi  StandardPortlet :  Standard  ServletContext  PortletContext  PortletConfig5  Jndi
  6. 6. Sources de propriétés  Il est possible de créer sa propre source de propriétés : public class MyPropertySource<MySource> extends PropertySource<T> { ... }  Il est possible d’ajouter des sources de propriétés à son environnement : MyPropertySource source = ... context.getEnvironment().getPropertySources() .addFirst(source);6
  7. 7. Environnement & sources de propriétés  Utilisation des propriétés dans Spring :  Propriété de type « SystemProperty » : <property name="prop" value="${java.io.tmpdir}"/>  Propriété de type « ServletContext » : <property name="prop" value="${mySCParameter}"/>  Propriété de type « JNDI » : <property name="prop" value="${my/jndi/value}"/>7
  8. 8. Profils  Concept :  Définir pour un même bean (de même identifiant), une configuration par profil.  Exemple :  Pour un bean ‘dataSource’, on aura  une configuration pour le profil ‘test’, pointant sur une base en mémoire  une configuration pour le profil ‘prod’, pointant sur une base externe8
  9. 9. Profils application-context.xml Service1 Service2 Profil « test » Profil « prod » dataSource dataSource9
  10. 10. Profils  application-context.xml : <bean class="sample.PersonDao"> <constructor-arg ref="dataSource" /> </bean> <beans profile="test"> <jdbc:embedded-database id="dataSource" type="H2" /> </beans> <beans profile="prod"> <jee:jndi-lookup id="dataSource« jndi-name="java:comp/env/jdbc/ds" /> </beans>10
  11. 11. Profils  Définir le(s) profil(s) actif(s) :  Par system property : -Dspring.profiles.active="prod"  Par web.xml : <context-param> <param-name>spring.profiles.active</param-name> <param-value>prod</param-value> </context-param>11
  12. 12. Profils  Définir le(s) profil(s) actif(s) :  Par code java : ctx.getEnvironment().setActiveProfiles("test");  Par annotation : @ActiveProfiles("test")12
  13. 13. DEMO13
  14. 14. Conclusion  Sources de propriétés :  Moyen unifié de déclarer des propriétés, quelqu’en soit la source  Plus puissant et flexible que le classique PropertyPlaceHolder  Peut être étendu à souhait  Profils :  Permet de définir des beans spring spécifiques par environnement  Très pratique pour définir des beans d’environnement spécifiques aux tests14

×