Avatar ·

Spring中@Component、@Repository和@Service的区别是什么?

你好!我开始学习Spring,试图理解stereotype注解。看起来这三个(@Component、@Repository、@Service)做的是同一件事——在Spring上下文中注册bean。但为什么需要三个呢? 我写了一个简单的用户服务。这是我的代码: ```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) { // 这里操作数据库 } } @Service public class UserManager { public void processUser(User user) { // 业务逻辑 } } ``` 三个都能工作,我可以通过@Autowired注入任何一个。那么根本区别是什么?也许这只是同一个东西的不同名称?或者有什么我忽略的魔法?在Stack Overflow上看到很多讨论,但想要一个清晰的中文解释。