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上看到很多讨论,但想要一个清晰的中文解释。