2009-09-17 5 views
1

J'ai une application Java à trois couches composée d'une couche de présentation, d'une couche de gestion et d'une couche d'accès aux données. Dans mon application, la couche de gestion contient ce que j'appelle des classes de service et ma couche d'accès aux données contient ce que j'appelle des classes d'accès aux données. J'utilise Spring pour l'injection de dépendances et pour gérer les transactions de base de données à partir de la couche de gestion.Injection de classes métier dans des classes businsess dans une architecture à trois couches

Je me demandais récemment si c'était une pratique «normale» d'injecter des classes de service dans d'autres classes de service. La raison pour laquelle je demande est que j'ai une classe de service qui contient la logique que je voudrais utiliser dans d'autres classes de service et je ne veux pas dupliquer la logique seulement pour éviter d'injecter une classe de service dans une autre classe de service. Je m'inquiète des références circulaires entre les classes de service. Pour éviter cela, j'allais créer une façade pour envelopper la logique dont j'avais besoin, mais je me suis dit que je demanderais à la communauté d'abord.

Répondre

0

Comment vos services sont-ils connectés à (obtenus à partir de) la couche de présentation? Les injectez-vous aussi ou utilisez-vous un modèle de localisateur de service?

J'irais normalement avec ce dernier pour la couche de présentation et la couche de service, par ex. service1 qui doit appeler service2 l'obtiendrait via le localisateur de service.

+0

Les DAO sont injectés dans la couche de service et les classes de service sont injectées dans la couche de présentation. Je n'ai pas de localisateur de service. Je vais regarder dans cela. –

Questions connexes