Junior — Middle
W jaki sposób można zaimplementować wstrzykiwanie zależności dla Beans w aplikacji?
sobes.tech AI
Odpowiedź od AI
W Javie wstrzykiwanie zależności (Dependency Injection, DI) dla Beanów można realizować na kilka sposobów:
- Przez konstruktor — zależności są przekazywane do konstruktora klasy. To najbardziej preferowany sposób, ponieważ pozwala tworzyć niezmienne obiekty i ułatwia testowanie.
public class Service {
private final Repository repo;
public Service(Repository repo) {
this.repo = repo;
}
}
- Przez settery (Setter Injection) — zależności są ustawiane za pomocą metod-setterów po utworzeniu obiektu.
public class Service {
private Repository repo;
public void setRepository(Repository repo) {
this.repo = repo;
}
}
- Przez pola (Field Injection) — zależności są wstrzykiwane bezpośrednio do pól klasy za pomocą adnotacji, np.
@Autowiredw Spring.
public class Service {
@Autowired
private Repository repo;
}
- Przez metody fabryczne lub klasy konfiguracyjne — tworzenie i łączenie Beanów odbywa się w klasach konfiguracyjnych lub XML.
Każdy sposób ma swoje zalety i wady, ale w nowoczesnych aplikacjach najczęściej używa się wstrzykiwania przez konstruktor lub adnotacji Spring do automatycznego łączenia zależności.