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

Java EE Discussion :

[EJB] Utilisation des EJB en grand nombre


Sujet :

Java EE

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2013
    Messages : 5
    Par défaut [EJB] Utilisation des EJB en grand nombre
    Bonjour,

    je me pose quelques questions sur l'utilisation d'EJB en grand nombre dans une application:
    je travaille sur un projet de taille moyenne (un peu plus de 100.000 lignes) qui utilise 120 EJB.
    En fait, quasiment toutes les classes métier de l'application sont des EJB locaux, et c'est seulement la propriété d'auto-injection des EJB qui est utilisée.

    Je me demande si c'est une bonne pratique de déployer un tel nombre d'EJB, et si la seule utilisation de l'injection justifie de faire de chaque classe métier un EJB?
    Est-ce que ça ne risque pas de poser des problèmes de performance une fois l'application en production?

    Est-ce qu'il ne serait pas préférable d'utiliser d'autres frameworks d'injection?

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Vous n'utilisez pas les aspects transactionnels, voire sécuritaires ?

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Août 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Août 2004
    Messages : 30
    Par défaut
    Citation Envoyé par fr1man Voir le message
    Vous n'utilisez pas les aspects transactionnels, voire sécuritaires ?
    comme vu dans quelques projets et leurs justifications: c'est beaucoup plus simple à instancier, il n'y a pas à faire de "new" à faire.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Ca me parait un peu léger comme explication.
    Dans ce cas, depuis java ee 6, on peut faire de l'injection de bean sans pour autant qu'ils soient des EJB.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2013
    Messages : 5
    Par défaut
    Bonjour fr1man,

    oui ça me semblait aussi un peu léger d'utiliser les EJB juste pour éviter le new! Et c'est un peu ce qui est fait sur ce projet...

    Au sujet des transactions, certaines classes utilisent les transactions mais pas la plupart. La sécurité est gérée uniquement à la connexion, je ne crois pas qu'on utilise les fonctionnalités de sécurité des EJB (à vérifier, là je suis en vacances et je n'ai pas le code sous la main ^^)

    Je ne savais pas qu'on pouvait faire de l'injection de bean sans les EJB, tu aurais des liens sur le sujet?
    Une recherche Google sur java ee 6 bean injection me renvoie justement vers les EJB...

  6. #6
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    Si tu fais des EJB 3, par défaut ils sont transactionnels.
    Par défaut aussi leur cycle de vie est géré par le conteneur (donc, pool d'EJB) ce qui est un vrai gain de performance puisque cela évite les "new".

    Pour éviter "autant" d'EJB (si ça te gène, car perso, je ne trouve pas cela gênant) tu peux toujours les inclure dans quelques "Facades" qui frontalise justement les autres.

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Regarde du coté de CDI (contexts and dependency injection).
    http://docs.oracle.com/javaee/6/tutorial/doc/gjbnr.html

    Coté EJB, j'oubliais, entre autre, l'aspect accès distant via les interfaces remote qui peut etre intéressant.
    Donc avant de tout jeter, il vaudrait mieux etre certain de la raison exacte pour laquelle ils ont été mis en place, car j'ai du mal à croire que la personne qui a choisi cela, a simplement vu le coté instanciation facile.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2013
    Messages : 5
    Par défaut
    Oui fxrobin, ce sont bien des EJB3.

    Je vois bien l'idée de transaction pour l'accès en base, par ex nos DAO sont des EJB transactionnels, mais pour les services je ne vois pas trop ce que ça signifie?

    C'est à dire que si j'ai une classe EJB de service et qu'une erreur s'y produit, eh bien... quoi donc? S'il y a eu un appel de DAO qui s'est bien déroulé avant l'erreur, la base retournerait à son état initial?

Discussions similaires

  1. [GF 4.0] Quels jars nécessaires pour une application Swing utilisant des EJB
    Par Népomucène dans le forum Glassfish et Payara
    Réponses: 1
    Dernier message: 01/09/2014, 09h29
  2. Programme Java utilisant des EJB
    Par giann08 dans le forum Java EE
    Réponses: 4
    Dernier message: 30/08/2013, 13h21
  3. Réponses: 0
    Dernier message: 06/11/2012, 20h20
  4. Utilisation des EJB 3 ?
    Par celine_911 dans le forum Tomcat et TomEE
    Réponses: 16
    Dernier message: 02/08/2007, 10h52
  5. [EJB]Utilisation d'EJB entité CMP 2.x avec Websphere 6
    Par majenior dans le forum Websphere
    Réponses: 3
    Dernier message: 09/09/2005, 16h32

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