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

avec Java Discussion :

L'injection des dependence


Sujet :

avec Java

  1. #1
    Débutant  
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 346
    Points : 86
    Points
    86
    Par défaut L'injection des dependence
    Bonjour,

    J'ai un problème pour comprendre la notion d'injection des dependences? Quelle est son principe travail.

    J'attends vos réponses et merci.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    L'IoC (Inversion of Control) est un pattern d'architecture d'application qui consiste à laisser le framework gérer l'exécution de l'application : on lui fourni des bouts de code et le framework organise leur exécution. On parle de cycle de vie de composant (initialisation, démarrage, etc) géré par le framework.

    L'IoD (Inversion of Dependancy) est une manière de faire de l'IoC.

    En programmation classique, un composant va aller demander à un autre (par exemple un gestionnaire, celui d'un framework qu'on utilise pour nous aider à construire l'application sans tout réécrire) un composant qu'il a besoin. Par exemple, un composant de traitement quelconque (mettons un Dao) va avoir explicitement dans son code un appel d'une méthode pour connaître le logger de l'application afin de loguer des messages (erreurs, warning, info...).
    En IoD, c'est le framework qui va injecter (comprendre affecter à un moment donné, souvent une étape d'initialisation ou de démarrage dans un cycle de vie de composant géré par le framework) le composant de logging, parce qu'il y a une information quelque part (dans un fichier de config ou via une annotation) qui dit que le composant voudrait pouvoir logger.


    Le but étant de découpler les composants (favoriser l'isolation) : ils n'ont plus besoin de références directes aux fournisseurs de composants (gestionnaires). Ils n'ont juste qu'à dire qu'ils en ont besoin. Il n'y a plus de dépendances techniques : le composant va dire qu'il a besoin de loguer. Que le log soit en base de données, dans un fichier ou autre, le composant s'en moque.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Le système d'injection de dépendance s'occupe d'injecter dans une classe qui le demande une instance d'une autre.
    Avant, on faisait un new UnObjet(...) ou un session.getAttribute("UnNom") etc... pour récupérer une instance
    Avec CDI, on marque la référence dans la classe et le système s'occupe d'injecter ce qu'il faut (dans la mesure où ce qu'on lui demande d'injecter est bien dans son domaine)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    @Named
    @SessionContext
    class UnManagedBean
    {
       ...
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    @Named
    @RequestContext
    class MonObjet
    {
       @Inject
       private UnManagedBean monManagedBean;
    }
    Dans cet exemple, le deuxième bean reçoit l'instance de UnManagedBean lié à la session en cours de l'utilisateur qui fait la requête.

    Là, c'est juste le niveau 1 de l'injection de dépendance, je te suggère de lire ce tutoriel sur CDI pour avoir une vue plus générale de ce qu'on peut faire
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 09/06/2012, 22h37
  2. Réponses: 7
    Dernier message: 30/07/2009, 22h33
  3. [DF]pb au niveau des dependances fonctionnelles
    Par leclone dans le forum Schéma
    Réponses: 15
    Dernier message: 10/05/2007, 18h28
  4. Réduction des dépendances
    Par djflex68 dans le forum Diagrammes de Classes
    Réponses: 6
    Dernier message: 06/06/2006, 13h30
  5. [JAR]Création d'un JAR avec des dependances sous Eclipse
    Par muthnik dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 05/07/2005, 17h39

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