Environnements, Sources de propriétés et Profils avec Spring 3.1
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 1,024 views

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

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

Statistics

Views

Total Views
1,024
Views on SlideShare
1,024
Embed Views
0

Actions

Likes
0
Downloads
9
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution-NonCommercial LicenseCC Attribution-NonCommercial License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • Spring 3.1 Environnements, Sources de propriétés, ProfilsFabien Baligand
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • Profils application-context.xml Service1 Service2 Profil « test » Profil « prod » dataSource dataSource9
  • 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
  • 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
  • Profils  Définir le(s) profil(s) actif(s) :  Par code java : ctx.getEnvironment().setActiveProfiles("test");  Par annotation : @ActiveProfiles("test")12
  • DEMO13
  • 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