Sobes.tech
Junior — Middle

Kā var īstenot atkarību injekciju Beans programmā?

sobes.tech AI

Atbilde no AI

Java valodā atkarības injekcija (Dependency Injection, DI) var tikt īstenota vairākos veidos:

  1. Caur konstruktoru — atkarības tiek nodotas klases konstruktoram. Šis ir visizplatītākais veids, jo tas ļauj izveidot nemaināmus objektus un atvieglo testēšanu.
public class Service {
    private final Repository repo;

    public Service(Repository repo) {
        this.repo = repo;
    }
}
  1. Caur setteriem (Setter Injection) — atkarības tiek iestatītas, izmantojot setter metodes pēc objekta izveides.
public class Service {
    private Repository repo;

    public void setRepository(Repository repo) {
        this.repo = repo;
    }
}
  1. Caur laukiem (Field Injection) — atkarības tiek tieši injicētas klases laukos, izmantojot anotācijas, piemēram, @Autowired Spring vidē.
public class Service {
    @Autowired
    private Repository repo;
}
  1. Caur fabrikas metodēm vai konfigurācijas klasēm — Beans izveide un sasaistīšana notiek konfigurācijas klasēs vai XML failos.

Katrs veids ir ar saviem plusiem un mīnusiem, bet mūsdienu lietojumprogrammās visbiežāk izmanto konstruktoru injekciju vai Spring anotācijas automātiskai sasaistīšanai.