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 :

SPRING et les objets


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    729
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 729
    Par défaut SPRING et les objets
    Bonjour,
    Je suis en train d’étudier Spring en tant que conteneur léger qui permet d’instancier les objets d’une application et injecter les dépendance. Je me pose plusieurs questions sur ce sujet. Les voici :
    QUESTION1 :
    Voici un bean :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Public class UnBean {
        Private String chaine ;
        Private int entier;
        Public UnBean(String chaine, int entier) {
            This.chaine=chaine;
            This.entier = entire;
        }
        (….)
    }
    Pour que Spring le gère avec l’injection des propriétés, il suffit de déclarer cet objet dans le fichier applicationContext.xml de la facon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <bean id= monBean class=UnBean>
        <property name=chaine value=valeur/>
        <property name=entier value=10/>
    </bean>
    Ma question est la suivante : comment dans une classe instancier un objet UnBean ?
    Normalement on ferait : UnBean B = new UnBean(valeur,10) ; mais comment gérer ceci avec Spring et surtout qu’est-ce que Spring apporte de plus par rapport à la méthode habituelle (UnBean B = new UnBean(valeur,10) )?

    QUESTION2 :
    D’autre part il semblerait que dans le fichier XML on déclare un bean particulier (Le bean monBean avec pour attribut valeur et 10) . Que se passe t-il si l’on veut un bean monBean avec comme attibut autre_valeur et 5 ? Serait-on obligé de le déclarer dans le fichier XML ? Si c’est le cas, cela me semble vraiment lourd. Je n’arrive pas à voir l’intérêt de Spring à ce sujet et pourtant Spring est utilisé par presque tout le monde, donc c’est moi qui ne voit pas bien.
    Est-ce que quelqu’un peut m’expliquer comment ca se passe et quel est l’avantage de Spring? Merci d’avance.
    NB : la question se pose de la même manière avec un attribut représentant une autre classe, par exemple l’attribut A a ; A étant une classe (public class A {….})

  2. #2
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Bonjour,
    Citation Envoyé par flamant Voir le message
    Ma question est la suivante : comment dans une classe instancier un objet UnBean ?
    http://java.developpez.com/faq/sprin...ontainerconfig

    Citation Envoyé par flamant Voir le message
    Normalement on ferait : UnBean B = new UnBean(valeur,10) ; mais comment gérer ceci avec Spring et surtout qu’est-ce que Spring apporte de plus par rapport à la méthode habituelle (UnBean B = new UnBean(valeur,10) )?

    ...

    Est-ce que quelqu’un peut m’expliquer comment ca se passe et quel est l’avantage de Spring? Merci d’avance.
    Bon, c'est vrai que c'est pas très intéressant présenté de cette façon (quoique ça te permet de changer les valeurs de tss camps sans avoir à recompiler).
    En fait, Spring brille surtout lors de la DI avec des attributs complexes (pas des int et String), mais plutôt d'autres classes/interfaces.
    Un exemple courant est dans la gestion de persistance:
    tu as un ensemble de DAOs (PersonDao, CompanyDao, etc.). Chacun de ses DAOs a besoin d'un objet de type DataSource pour pourvoir communiquer avec la BD. De plus, ce DataSource soit être configuré avec le chemin de la BD, le login, dot de passe, etc.
    Enfin, dans une autre classe, tu as besoin de quelques DAOs pour les utiliser.
    C'est la qu'intervient la magie de Spring:
    - Tu déclares et configures ton DataSource dans le fichier xml.
    - Tu déclares tes DAOs en spécifiant la dépendance envers le data source.
    - Tu déclares la classe (X) qui utilise les DAOs et tu déclares ses dépendances.

    Quand tu récupères la classe X du conteneur de Spring, ce dernier va automatiquement instancer les DAOs tout en leur passant l'instance configurée du Datasource, injecter ces DAOs dans la classe X et te retourne la chose prête à porter

    Voilou. Après, je te conseillerais de consulter quelques tutos/cours sur Spring.

    Bonne chance

  3. #3
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    L'intérêt c'est de ne pas avoir justement à instancier tes beans. Le framework le fait à ta place et pour chacun d'entre eux il injecte les dépendance dont ils ont besoin.

    Ainsi, ce n'est pas la classe qui instancie ton bean "monBean", bien qu'elle puisse le faire (et tout en conservant l'injection grace au loadtime weaving).

    Le gros intérêt c'est le découplage interface-implémentation. Dans ton code tu manipule des interfaces, dans le fichiers de configuration tu exprime les implémentations concrètes. Ce qui te permet d'en changer très simplement.

    Cependant jette un coup d'oeil à la dernière version de Spring, qui simplifie à l'extrême le fichier de configuration en reportant beaucoup de choses sur les anotations.

  4. #4
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Comme l'a mentionné Tommy, la configuration via les annotations peut en effet te faire gagner des kilomètres de xml, mais mieux vaut commencer par le XML histoire de comprendre ce qui se passe en coulisses.

    Un exemple de configuration via les annotations:
    http://blog.developpez.com/index.php...&c=1&tb=1&pb=1.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    729
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 729
    Par défaut
    Merci de vos réponses,
    cela m'éclaire, mais je ne suis pas vraiment convaincu par le fait que SPRING permet de faire des miracles. Et pourtant, c'est tellement utilisé.... Peut-être le serais-je en pratiquant la chose.
    Sinon, est-ce que vous avez des références de personnes qui connaissent SPRING à fond à qui je pourrais m'adresser. J'ai essayé de trouver les adresses mail des auteurs de "SPRING PAR LA PRATIQUE" mais je ne les ai pas trouvé. Merci encore.

  6. #6
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Euh ... t'es sur que c'est ce que tu veux faire ? ça ressemble plus à l'harcèlement ce que tu désires faire là (mailer les gens pour leur poser des questions)

    Comme tu l'as dit, pour se rendre compte de l'importance de Spring, faut avoir au moins réalisé un projet complexe et s'être rendu compte que plus de 15% de son code ne sert qu'à construire des objets en satisfaisant leurs dépendances.

Discussions similaires

  1. JSON/Spring et les objets imbriqués
    Par Fractaliste dans le forum Spring Web
    Réponses: 0
    Dernier message: 28/03/2014, 13h16
  2. Réponses: 16
    Dernier message: 06/06/2007, 12h42
  3. Architecture pour les objets d'un jeu
    Par Freakazoid dans le forum DirectX
    Réponses: 7
    Dernier message: 31/07/2004, 13h09
  4. Réponses: 5
    Dernier message: 07/07/2004, 15h13
  5. Rafraichissement de la fiche ainsi que de tous les objets
    Par portu dans le forum Composants VCL
    Réponses: 7
    Dernier message: 06/01/2004, 00h25

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