Avatar ·

Différence entre @Component, @Repository et @Service dans Spring Framework

Bonjour à tous ! Je suis un développeur Java débutant, j'apprends Spring Framework. J'écris ma première application — une simple boutique en ligne. J'ai plusieurs classes : ProductService, ProductRepository et ProductController. Je sais qu'elles doivent toutes être des beans Spring, mais je ne comprends pas quelle annotation utiliser pour quelle classe. Partout on écrit qu'on peut simplement mettre @Component sur tout, mais j'ai vu que les développeurs expérimentés utilisent @Repository pour la couche DAO et @Service pour les services. Quelle est la différence ? J'ai essayé d'écrire comme ça : ```java @Component public class ProductRepository { public List findAll() { // ici travail avec la BD } } @Service public class ProductService { @Autowired private ProductRepository repository; } @Controller public class ProductController { @Autowired private ProductService service; } ``` Tout fonctionne. Mais si je remplace @Service par @Component — ça fonctionne aussi. Et si je remplace @Repository par @Component — pareil. Alors pourquoi