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 :

Charger des beans via XmlBeanFactory


Sujet :

Spring Java

  1. #1
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 76
    Points : 61
    Points
    61
    Par défaut Charger des beans via XmlBeanFactory
    Bonjour à tous,

    J'ai un problème assez idiot, mais comme je n'ai toujours pas trouvé la bonne méthode, je fais appel à vous. Pour mon appli web je crée des beans définis dans un fichier XML. Jusque là tout va bien. Seulement ce fichier XML je voudrais le stocker dans le répertoire /WEB-INF/ de mon application et je ne sais pas quelle implémentation de l'interface resource utiliser. Je me doute qu'il y a forcément un moyen..

    A l'heure actuelle mon fichier est dans le classpath et je le charge avec ClassPathResource mais je voudrais externaliser ce fichier puisque c'est de la donnée.

    Je pourrais bien sûr le charger au démarrage de l'appli en le mettant dans un fichier applicationContext-data.xml par exemple mais ça ne correspond pas à mes besoins. Du coup je me tourne vers vous pour ce problème plutôt bête mais qui me bloque

    Merci

  2. #2
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    Mettre ton/tes fichiers XML dans /WEB-INF/lib par exemple et définir un truc du genre (cf. ci-dessous) dans ton web.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <context-param>
    		<param-name>contextConfigLocation</param-name>
    		<param-value>		   
     
    			/WEB-INF/lib/applicationContext.xml				
    		</param-value>
    </context-param>
     
    ....
     
    <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    Regardes la doc de Spring MVC !!

  3. #3
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 76
    Points : 61
    Points
    61
    Par défaut
    ego, je pense que tu n'as pas compris mon problème mais ce n'est pas grave étant donné que j'ai trouvé la solution.

    J'utilise effectivement cette méthode de chargement pour tout ce qui touche au fonctionnement de l'application en elle-même (une servlet action-servlet.xml pour Spring MVC, applicationContext.xml pour les beans de l'appli, applicationContext-security.xml pour acegi etc...)

    Mais en fait je veux stocker des données dans un format XML, et tant qu'à faire, j'utilise le système de Bean de Spring pour créer mes objets du domaine qui sont chargés en cours d'application (et qui peuvent être modifiés et réenregistrés également pendant l'execution).

    Bref, j'ai donc défini ces beans dans un fichier xml qui me servent de stockage de données et j'y accède par l'intermédiaire d'une XmlBeanFactory dans ma couche Dao. Je veux stocker ce fichier XML dans le répertoire WEB-INF/ de l'application et non pas dans le ClassPath, je cherchais donc l'implémentation de l'interface Resource à utiliser.

    Et la solution est toute bête en fait, il suffit de définir une String et ça crée la resource correctement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // Dans la classe Dao
            private Resource resource;
     
    //...
            ActionComponentContainer container = 
                    (ActionComponentContainer)new XmlBeanFactory(resource).getBean("action"+idAction);
    //..
    et donc dans mon fichier applicationContext.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        <bean id="actionComponentDao" class="dao.xml.XmlActionComponentDao">
            <property name="resource">
                <value>/WEB-INF/actions.xml</value>
            </property>
        </bean>
    En tout cas, je te remercie ego de ta participation à ce sujet

  4. #4
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    ok, j'ai compris.
    C'est exactement ce que je fais moi aussi.
    Regardes mon article sur Spring et les namespaces, c'est de ça dont il s'agit avec en plus le fait que j'ai créé une syntaxe simple pour la définition de mes beans.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [1.x] charger des data via fichier sql
    Par erictomcat dans le forum Symfony
    Réponses: 7
    Dernier message: 16/07/2011, 22h25
  2. [Framework] Initialisation des beans Spring via un fichier properties
    Par lionel84 dans le forum Spring
    Réponses: 2
    Dernier message: 01/07/2011, 11h43
  3. Réponses: 9
    Dernier message: 29/08/2007, 09h00
  4. [JSP][BEAN]Récuperer des Beans dans un ArrayList
    Par Jones dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 30/08/2004, 11h22
  5. Charger des paramètres à partir de beans
    Par lalakers dans le forum ANT
    Réponses: 1
    Dernier message: 19/05/2004, 18h25

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