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 299 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
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 299
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
14
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

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

×