Bonjour,
Je développe actuellement une application dont la couche métier est basée sur Spring 2.5 et Hibernate 3.2. Pour la structure en couche, j'utilise les annotations de Spring, @Service et @Repository.
Avant j'étais habitué à utiliser Spring sans les annotations, je faisais mon IOC à la carte. Je voudrai rajouter une couche intermédiaire et avoir la structure suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 @Service public class ServiceImpl implements IService { private Dao dao; ... } @Repository public class DaoImpl implements IDao { ... }
La couche intermédiaire Business ferait des traitement métiers complexes et la couche service ne servirait qu'à renvoyer à la couche présentation des objets détachés/DTO.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public class ServiceImpl implements IService { private Business business; ... } public class Business implement IBusiness { private Dao dao; ... } public class DaoImpl implements IDao { ... }
Voici les questions que je me pose :
1 - comment faire avec les nouvelles annotations de Spring 2.5 pour créer ma couche intermédiaire ?
2 - Est-ce bien de lancer à la couche présentation des objets détachés ? J'y vois l'avantage de ne pas avoir de lazy exception surprise côté couche présentation. J'y vois le désavantage de faire du mapping objet/objet incessant pour transformer les entités persistante en DTO et vice-versa. D'ailleurs quelqu'un aurait-il un tutorial ou exemple de mise en oeuvre avec Dozer ? Mieux, y-a-t-il un support de Spring pour Dozer, on sait jamais...
3 - Comment avec toutes ces couches gérer de manière efficace la propagation de mes transactions ? Y-a-t-il des bonnes pratiques à respecter. C'est facile de trouver de la documentation sur @Transactionnal etc. mais qu'en est-il des bonnes pratiques ? Des exemples un peu plus complexes que le CRUD avec une méthode find en @Transactionnal readOnly=true ?
Merci d'avance,
Julien.
Partager