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