Avatar ·

Was ist der Unterschied zwischen @Component, @Repository und @Service in Spring?

Hallo! Ich habe angefangen, Spring zu lernen, und versuche, die Stereotyp-Annotationen zu verstehen. Anscheinend machen alle drei (@Component, @Repository, @Service) dasselbe – sie registrieren einen Bean im Spring-Kontext. Aber warum gibt es dann drei davon?\n\nIch habe einen einfachen Service für die Arbeit mit Benutzern geschrieben. Hier ist mein Code:\n\n```java\n@Component\npublic class UserService {\n public void saveUser(User user) {\n System.out.println("User saved: " + user.getName());\n }\n}\n\n@Repository\npublic class UserRepository {\n public void saveToDatabase(User user) {\n // hier die Arbeit mit der Datenbank\n }\n}\n\n@Service\npublic class UserManager {\n public void processUser(User user) {\n // Business-Logik\n }\n}\n```\n\nAlle drei funktionieren, ich kann jeden von ihnen über @Autowired injizieren. Was ist dann der grundlegende Unterschied?