IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

[Configuration Spring] Properties vs JSON


Sujet :

Spring Java

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 23
    Points : 22
    Points
    22
    Par défaut [Configuration Spring] Properties vs JSON
    Bonjour,

    Vous voulez remplacer vos fichiers de configuration properties par des fichiers au format JSON ?

    Je suis justement en train de développer une libraire permettant de configurer vos applications Spring à l'aide de fichiers JSON.

    Se voulant parfaitement intégrée avec Spring, elle vous permet de configurer vos applications très facilement, supportent en plus le rechargement dynamique.

    Je vous laisse la découvrir et attends vos commentaires.

    https://github.com/yyvess/jsconf


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    {
        datasource : {
            url : "jdbc:mysql://localhost:3306/test",
            username : "user",
            password : "********"
        }, 
        simpleConf : {
            vstring : "Hello World",
            vint : 12,
            vmap : {
               key1 : "value1",
               key2 : "value2"
            },
            vlist : [ "value1", "value2"]
        }
    }

  2. #2
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 135
    Points : 391
    Points
    391
    Par défaut
    Puis-je faire quelque critique ?

    Bon le rechargement dynamique, ok ça c'est une réel plus-value.

    Faire sa config en JSon, j'ai du mal à voir l’intérêt c'est aussi verbeux que en XML mais sans le XSD.

    si je définie une properties, je pourra l'utiliser dans mon @value ?
    ( je suis au boulot, je peut pas test ici)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    {
     "email": {
           "sender" : "donotreply@toto.com"
      }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    @value("${email.sender}")
    public setEmailSender(String email) {
     this.email=email;
    }
    Peut il s’intégrer avec Javaconfig?
    (ça me ferai chier d'avoir un xml juste pour ça).

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 23
    Points : 22
    Points
    22
    Par défaut
    Salut,

    Merci pour ton retour.

    J'aurais pu choisir le format XML, l'objectif est de remplacer les fichier properties utilisés pour configurer des applications Spring.

    Non les annotations @value ne sont pas supportées.

    La libraire supporte Javaconfig, j'ai modifier les exemples dans ce sens.

  4. #4
    Membre du Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2012
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 70
    Points : 67
    Points
    67
    Par défaut
    Bonjour,

    je salut ton esprit d'initiative, mais je vois pas trop l’intérêt de basculer vers des fichier json !

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 23
    Points : 22
    Points
    22
    Par défaut
    JSON permet de mieux structurer les propriétés et support les types boolean, int, list et map.
    Le format properties est aussi être très bien adapter dans certain cas.

    La libraire support aussi les fichier properties ;-)

    Voici un exemple, avec rechargement automatique du fichier properties lorsqu'il est modifié.

    myconf.properties
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    simpleConf.url = <a href="https://localhost/Tic2222" target="_blank">https://localhost/Tic2222</a>
    Le bean ou la configuration va être injectée, on peut utiliser une classe ou une interface
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public interface ConfigBean {
    	String getUrl();
    }
    Le service Spring
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(loader = AnnotationConfigContextLoader.class)
    public class Sample {
    	@Autowired
    	private ConfigBean conf;
    	@Test
    	@Repeat(value=100)
    	public void test() throws InterruptedException {
    		System.out.println(this.conf.getUrl());
    		Thread.sleep(1000);
    	}
    	@Configuration
    	static class ContextConfiguration {
    		@Bean
    		public static ConfigurationFactory configurationFactory() {
    			return new ConfigurationFactory().withResourceName("myconf.properties").withBean("simpleConf", ConfigBean.class, true);
    		}
    	}
    }

  6. #6
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 23
    Points : 22
    Points
    22
    Par défaut
    La libraire est désormait disponible sur maven central avec les nouveautés suivantes :
    • Support de l'annotation @ConfigurationProperties
    • Création de bean depuis une interface

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <dependency>
            <groupId>net.jmob</groupId>
            <artifactId>jsconf</artifactId>
            <version>1.1.0</version>
    </dependency>
    Voici un exemple d'utilisation de l annotation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    root:{
        simpleConf:{
            url:"Hello World",
            port:12,
            aMap:{
                key1:"value1",
                key2:"value2"
            },
            aList:[
                "value1",
                "value2"
            ]
        }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    @ConfigurationProperties("root/simpleConf")
    public interface ConfigBean {
        String getUrl();
        int getPort();
        Map<?, ?> getAMap();
        List<?> getAList();
    }
     
    @Service("service")
    public class Service {
     
        @Autowired
        private ConfigBean conf;
     
    }
     
    @Configuration
    public class ContextConfiguration {
            @Bean
            public static ConfigurationFactory configurationFactory() {
                return new ConfigurationFactory().withResourceName("app.conf") //
                        .withScanPackage("org.jsconf.core.sample.bean");
            }
        }
    Le code source complet est disponnible sur github :

    https://github.com/yyvess/jsconf/blo.../Sample02.java

Discussions similaires

  1. Recupérer le fichier de configuration spring
    Par Space23 dans le forum Spring Web
    Réponses: 1
    Dernier message: 14/07/2008, 19h11
  2. Problème de configuration spring
    Par fluff dans le forum Spring
    Réponses: 4
    Dernier message: 30/06/2008, 16h27
  3. Problème de classpath et de fichier de configuration Spring
    Par rozwel dans le forum Wildfly/JBoss
    Réponses: 13
    Dernier message: 29/12/2007, 17h32
  4. Réponses: 1
    Dernier message: 13/12/2007, 15h16
  5. Configurer mail.properties à partir d'une BD?
    Par Hminos dans le forum Wildfly/JBoss
    Réponses: 2
    Dernier message: 15/05/2007, 17h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo