begin process at 2010 02 10 10:56:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Divers

 > 

Débutant(e)

 > 

IoC ou Service Locator


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

IoC ou Service Locator

vendredi 11 juillet 2008 à 01:19:11 | IoC ou Service Locator

LocalStone

Salut à tous,

Je suis (toujours) en stage, et j'ai (encore) besoin d'un petit conseil ...

Je pense que pour avoir une réponse à ma question, il faut d'abord que j'explique pourquoi je dois la poser ...

Je dois réaliser une application Web relativement importante (en taille ... On a une 50aine de tables). Pour éviter de réinventer la roue, j'ai décidé de passer pas mal de temps dans l'étude des divers framework existant ... Du coup, j'ai choisi d'utiliser Hibernate pour la persistance, les Facelets pour la vue et JSF pour orchestrer tout ce bordel. Jusque là pas trop de soucis.

Du coup, j'ai créé des classes à persister, des classes DAO pour accéder aux instances persistantes, des services pour la couche métier (même si je ne saisi pas trop la différence entre DAO et service pour l'instant) et des backing-beans pour effectuer les actions ... Jusque là, rien de folichon.

Le soucis, c'est que je me suis rendu compte que dans les best-practices d'Hibernate, l'idéal pour mon cas est de créer une session par requête, et 2 transactions : une pour l'écriture (création, modification ou mise-à-jour) et une pour la lecture. Et en fait, je suis obligé de faire ça, sinon j'ai pas mal de soucis (modification en base non répercutée sur les objets, etc.).

Du coup, je me suis renseigné, et il se trouve que le framework Spring permet régler soit disant de régler ce point. Ok ...

Mais maintenant que je me suis plongé dedans et je comprends mieux comment ça marche, il y a un point qui reste flou ... Pourquoi utiliser l'injection de dépendances (IoC) qui est quand même relativement lourde à mettre en place, alors qu'une simple classe statique ServiceLocator peut faire l'affaire ?

Globalement, dans mes backing-beans, c'est là que les services sont utilisés.  Du coup, si je fais de l'IoC, je dois modifier chaque classe et chaque configuration si pour telle ou telle raison je dois créer un nouveau service ... Et ça c'est plutôt lourd. A l'inverse, si je fais un registre ServiceLocator, il n'y a que cette classe que je dois changer ...

Donc voilà ma question ... Quel choix dois-je faire dans mon cas : sortir l'artillerie lourde avec l'IoC, seulement parce que tout le monde en parle sur le Net en disant que c'est l'avenir ?

Merci beaucoup pour votre aide ... Je pense qu'un vrai débat qui pourrait servir à d'autre débutant pourrait être très interessant !

LocalStone
mardi 15 juillet 2008 à 11:58:19 | Re : IoC ou Service Locator

Moucave

Salut,
il est vrai que Spring est coûteux à mettre en place, de même qu'hibernate est couteux à mettre en place (par rapport à du JDBC traditionnel).
En gros si tu appli comporte énormement d'objets à instancier et à gérer il est interressant d'utiliser Spring en travaillant par composition (pour essayer de découpler un max ton code et ne pas trop dépendre de Spring).Un des points interressant de Spring est justement le fait de pouvoir le coupler à hibernate et lui laisser la responsabilité de gérer les transactions (TransactionManager).

 Ensuite si ton apli reste somme toute assez modeste tu pourras te servire d'un BeanFactory et d'un serviceLocator tous deux faits maison.

Bon après tout dépend de ton appli et du fait de vouloir en faire un vitrine techno ou pas .

PS: Différence entre DAO et service : Le DAO vas te rapporter ta donnée brute de décoffrage de la BDD sans ne jamais appliquer de règle métier sur les données. La couches service elle appliquera toute transformation, ou règle de gestion nécessaire avant de retourner ton objet à tes backing-beans.

--- Moucave , petit singe au pays du j2ee  ---


Cette discussion est classée dans : service, classe, soucis, coup, ioc


Répondre à ce message

Sujets en rapport avec ce message

Classe JAVA en Service Windows. [ par CoreBreaker ] Bonjour,Quelqu'un saurait-il comment enregistrer un Thread ou une classe Java en Service Windows à l'aide d'une API Java? Le service pourrait être lan Web Service Axis et classes métier [ par nJohn ] Bonjour, J'ai développé un service web en Java sous Axis qui fonctionne avec des méthodes utilisant des types de base (int, boolean, ...). Le problème Accès à un fichier xml via web service [ par m3allem58 ] Bonjour,je développe une application où un client veut accéder au contenu de fichier xml chez le serveur en utilisant web services. Y a t-il qq1 qui p SOA avec Tuscany [ par jeje454 ] Bonjour,Je débute dans l'orienté service et je suis entrain de tester les librairies Tuscany d'Apache...Les tests en local marchent bien, mais dés que Iterateur en java [ par m3allem58 ] Bonjour, Dans la modélisation UML,j'ai une classe java X dont la cardinalité est 1..* (X est en relation de composition avec une autre classe), donc X communiquer en web service 2 applications [ par m3allem58 ] Bonjour, Je travaille sur Eclipse 3.2. J'ai deux applications. La première application contient une méthode send qui renvoie un objet. La deuxième app interaction des classes [ par aymenbelhadj ] salut;comment procéder pour pouvoir communiquer entre les classes;exemple;classe livre;classe étudiant;classe bibliothèque;faire une méthode bilan qui ProgressMonitor EDT/delphi [ par jtd06 ] Bonsoir, voici le problème que je rencontre : j'utilise une classe JAVA qui génère des bitmaps, via une Dll codé en delphi et qui utilise JNI. J'ai im jointure sql [ par LiLFinger ] moi c LiL'Fingerma question : j'ai 4tables (classe, eleves, notes, matieres) je veux dans ma requete affiché la liste de toutes les notes de tous les  Où placer le code du client web service? [ par m3allem58 ] bonjour, J'ai crée un client web service avec eclipse.Des fichiers java sont automatiquement générés comme stub, service locator... Maintenant j'ai im


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,312 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales