@Inject 和 @Autowired 在 Spring 中的区别:有什么区别以及如何选择?
你好!我开始学习 Spring Framework 并编写我的第一个应用程序。我对依赖注入的注解感到困惑。我看到在一些示例中使用 @Autowired,而在其他示例中使用 @Inject。这两个注解似乎做同样的事情:将 bean 注入到字段、构造函数或 setter 中。
这是我使用 @Autowired 的代码示例:
```java
@Component
public class UserService {
@Autowired
private UserRepository userRepository;
public User findUser(Long id) {
return userRepository.findById(id);
}
}
```
但我的同事说最好使用来自 javax.inject 包的 @Inject。他声称这是一种更“纯粹”的方法,但无法清楚地解释原因。我搜索了一下,发现了很多矛盾的信息。有人说根本没有区别,有人说 @Inject 是 Java 标准,而 @Autowired 是 Spring 特有的。
我对以下几点感兴趣:
1. 这些注解之间的根本区别是什么?