Sobes.tech
Junior — Middle

Kaip galima įgyvendinti priklausomybių injekciją Beans programoje?

sobes.tech AI

Atsakymas iš AI

Java kalboje priklausomybių injekcija (Dependency Injection, DI) gali būti įgyvendinta keliais būdais:

  1. Per konstruktorių — priklausomybės perduodamos per klasės konstruktorių. Tai yra labiausiai pageidaujamas būdas, nes leidžia kurti nekintamus objektus ir palengvina testavimą.
public class Service {
    private final Repository repo;

    public Service(Repository repo) {
        this.repo = repo;
    }
}
  1. Per seterius (Setter Injection) — priklausomybės nustatomos naudojant seterių metodus po objekto sukūrimo.
public class Service {
    private Repository repo;

    public void setRepository(Repository repo) {
        this.repo = repo;
    }
}
  1. Per laukus (Field Injection) — priklausomybės tiesiogiai įterpiamos į klasės laukus naudojant anotacijas, pvz., @Autowired Spring'e.
public class Service {
    @Autowired
    private Repository repo;
}
  1. Per gamyklinius metodus arba konfigūracijos klases — kūrimas ir Beans sujungimas vyksta konfigūracijos klasėse arba XML.

Kiekvienas būdas turi savo privalumus ir trūkumus, tačiau šiuolaikinėse programose dažniausiai naudojama konstruktoriaus injekcija arba Spring anotacijos automatiškai sujungti priklausomybes.