Sobes.tech
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:

  1. 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;
    }
}
  1. 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;
    }
}
  1. Przez pola (Field Injection) — zależności są wstrzykiwane bezpośrednio do pól klasy za pomocą adnotacji, np. @Autowired w Spring.
public class Service {
    @Autowired
    private Repository repo;
}
  1. 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.