Avatar ·

Quelle est la différence entre @Component, @Repository et @Service dans Spring?

Bonjour ! J'ai commencé à étudier Spring et j'essaie de comprendre les annotations de stéréotypes. Apparemment, les trois (@Component, @Repository, @Service) font la même chose — enregistrer un bean dans le contexte Spring. Mais pourquoi y en a-t-il trois alors ? J'ai écrit un service simple pour travailler avec les utilisateurs. Voici mon code : ```java @Component public class UserService { public void saveUser(User user) { System.out.println("User saved: " + user.getName()); } } @Repository public class UserRepository { public void saveToDatabase(User user) { // ici travail avec la BD } } @Service public class UserManager { public void processUser(User user) { // logique métier } } ``` Tous les trois fonctionnent, je peux injecter n'importe lequel via @Autowired. Quelle est alors la différence fondamentale ? Peut-être que ce sont juste des noms différents pour la même chose ? Ou y a-t-il une magie que je rate ? J'ai vu beaucoup de discussions sur Stack Overflow, mais je voudrais une explication claire en français avec