@Inject und @Autowired in Spring: Unterschiede und Auswahl
Hallo! Ich habe angefangen, das Spring Framework zu lernen und schreibe meine erste Anwendung. Ich bin verwirrt über die Annotationen zur Dependency Injection. Ich sehe, dass in einigen Beispielen @Autowired verwendet wird, in anderen @Inject. Beide Annotationen scheinen dasselbe zu tun: Sie injizieren Beans in Felder, Konstruktoren oder Setter.
Hier ist ein Beispiel meines Codes, in dem ich @Autowired verwende:
```java
@Component
public class UserService {
@Autowired
private UserRepository userRepository;
public User findUser(Long id) {
return userRepository.findById(id);
}
}
```
Aber mein Kollege sagte, dass es besser sei, @Inject aus dem Paket javax.inject zu verwenden. Er behauptet, dass dies ein "sauberer" Ansatz sei, konnte aber nicht klar erklären, warum. Ich habe gegoogelt und viele widersprüchliche Informationen gefunden. Manche schreiben, dass es überhaupt keinen Unterschied gibt, andere sagen, dass @Inject ein Java-Standard ist, während @Autowired Spring-spezifisch ist.
Mich interessieren folgende Punkte:
1. Was ist der grundlegende Unterschied zwischen diesen Annotationen?