Terminologie Java/Spring : Guide de Compréhension
Êtes-vous confus par le jargon Java/Spring comme POJO, DTO, Entity, Bean, Repository ? Comprenons ces termes :
1. POJO (Plain Old Java Object)
Juste une classe Java classique
Aucune annotation, aucun framework
Seulement des champs, constructeurs, et getters/setters
Considérez-le comme la structure de données la plus basique
2. Bean
Un POJO que Spring gère
Doit suivre les règles JavaBean (comme avoir un constructeur sans argument)
Enregistré dans Spring via des annotations comme @Component, @Service, ou @Repository
Tous les Beans sont des POJOs mais Spring est responsable de leur création et injection
3. DTO (Data Transfer Object)
Un POJO spécifiquement utilisé pour transporter des données entre les couches
Contient uniquement des données - pas de logique, pas d'annotations requises
Couramment utilisé entre les couches Controller et Service
Chaque DTO est un POJO, mais chaque POJO n'est pas un DTO
4. Entity
Un POJO qui représente une ligne de base de données
Annoté avec @Entity et utilisé avec JPA/Hibernate
Mappe les champs de classe aux colonnes de table de base de données
5. DAO (Data Access Object)
Une classe qui gère manuellement les opérations de base de données
Utilise typiquement JDBC ou Hibernate pour écrire des requêtes
6. Repository
Le remplacement moderne de Spring pour DAO
Utilise @Repository et Spring Data JPA
Pas besoin d'écrire des requêtes, Spring peut les auto-générer
Façon plus propre et maintenable d'accéder aux données
7. Service
Contient la logique métier de votre application
Où les décisions, calculs et règles sont appliqués
Annoté avec @Service
8. Controller
Gère les requêtes et réponses HTTP
Agit comme point d'entrée pour les APIs web
Annoté avec @Controller ou @RestController
9. Component
L'annotation de base pour toute classe gérée par Spring
@Service, @Repository, et autres sont des versions spécialisées
Utilisé pour enregistrer des beans Spring à usage général
10. Configuration
Une classe qui définit comment les beans sont liés ensemble
Annotée avec @Configuration
Contient souvent des méthodes qui créent des beans pour le contexte Spring
Co-Founder / Tech Lead at La Fabrique Digit'Owl / Auteur
2 months ago
Il est possible de créer des bean spring avec une méthode dans une classe de configuration (@Configuration) donc le fait d’avoir un constructeur vide obligatoirement n’est pas vrai. Non?