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

Hibernate Java Discussion :

Couche Persistance et l'architecture de mon application


Sujet :

Hibernate Java

  1. #1
    Débutant  
    Couche Persistance et l'architecture de mon application
    Bonjour,

    Je veux réaliser une application JAVA, SpringRest et Hibernate pour monter en compétence aux développements et voici les informations sur cet application :

    A la base de données j'ai la table "Utilisateur"

    Pour la partie backend:
    J'ai la couche DAO ou je créerai 2 classes : Utilisateur.java (entité), UtilisateurDAOImp.java : est ce que je peux utiliser l'annotation @Repository? Si oui c'est quoi son rôle ) et une interface UtilisateurDAO.java : est ce que cet interface peut hériter de CrubRepository comme SpringData?

    La couche Service qui communique avec DAO et Controller, je créerai : 1 classe UtilisateurImpMetier.java et 1 interface UtilisateurImpMetier.java
    La couche Controller contenant mon @RestController pour communiquer avec la partie Front que je vais la developper avec Angular

    Les trois que j'ai les décrit ci-dessus (couche DAO, Service, Controller) est ce qu'elles representent l'architecture de mon application ou bien sa structure? est ce que je dois ajouter des autres couches, classes?

    J'attends vos retours et merci d'avance.

  2. #2
    Membre confirmé


    Tu peux utiliser @Repository en annotation de ta classe UtilisateurDAOImp, c'est d'ailleurs son rôle.
    Cette annotation, en plus d'indiquer à Spring qu'une classe est injectable comme @Service et @Component (qu'il hérite), permet aussi à Spring de gérer des exceptions liées à l'accès en base.

    Si tu souhaite utiliser SpringData et donc CrudRepository, il ne faut pas créer de classe UtilisateurDAOImp mais mettre l'annotation @Repository sur UtilisateurDAO qui héritera de CrudRepository.

    [...] est ce qu'elles representent l'architecture de mon application ou bien sa structure?
    Les deux. En développement logiciel, ces deux termes sont synonymes (la différence entre les deux est trop subtile pour avoir un impact réel). Après on entend plus parler d'architecture que de structure, du coup, si ta question est en lien avec un rapport de stage ou quelque chose de similaire, privilégie l'utilisation de "architecture", ça fait plus "pro".

    est ce que je dois ajouter des autres couches, classes?
    Oui... et non.
    Sur mon projet actuel, on a une couche Traitement entre le Contrôleur et le Service. Étant donné qu'on a des règles de gestion assez lourdes, un appel de webservice peut faire appel à plusieurs entités distinctes et donc aux DAO et Services associés. Mais cela démontre surtout une mauvaise conception des webservices à la base (et aussi du modèle de données).
    Si tu te retrouve avec des règles de gestion assez lourde, il est préférable de les déporter sur les entités eux mêmes quand c'est possible (calcule de l'état d'avancement de l'objet, intégrités des données... etc).
    Merci d'ajouter un sur les tags qui vous ont aidé