Sobes.tech
Junior — Middle

Na koje načine može da se implementira ubrizgavanje zavisnosti za Beans u aplikaciji?

sobes.tech АИ

Одговор од АИ

U Javi, implementacija zavisnosti (Dependency Injection, DI) za Beans može se realizovati na više načina:

  1. Kroz konstruktor — zavisnosti se prosleđuju u konstruktor klase. Ovo je najpreferiraniji način, jer omogućava kreiranje nepromenljivih objekata i olakšava testiranje.
public class Service {
    private final Repository repo;

    public Service(Repository repo) {
        this.repo = repo;
    }
}
  1. Kroz setere (Setter Injection) — zavisnosti se postavljaju putem setter metoda nakon kreiranja objekta.
public class Service {
    private Repository repo;

    public void setRepository(Repository repo) {
        this.repo = repo;
    }
}
  1. Kroz polja (Field Injection) — zavisnosti se direktno ubrizgavaju u polja klase pomoću anotacija, na primer, @Autowired u Spring-u.
public class Service {
    @Autowired
    private Repository repo;
}
  1. Kroz fabričke metode ili konfiguracione klase — kreiranje i povezivanje Beans-a se obavlja u konfiguracionim klasama ili XML-u.

Svaki metod ima svoje prednosti i mane, ali u savremenim aplikacijama najčešće se koristi konstruktor ili Spring anotacije za automatsko povezivanje zavisnosti.