Sobes.tech
Junior — Middle

Kaip įgyvendinama ir konfigūruojama konkreti Bean sąsajos realizacija Spring'e, atsižvelgiant į sąlygas?

sobes.tech AI

Atsakymas iš AI

Spring'e, konkretaus Bean sąsajos įgyvendinimo įvedimas pagal sąlygas dažniausiai įgyvendinamas naudojant anotacijas ir konfigūracijas, leidžiančias pasirinkti reikalingą bean priklausomai nuo profilio, savybės ar kitų sąlygų.

Pagrindiniai būdai:

  • @Primary — pažymi bean kaip pageidaujamą, jei yra keli įgyvendinimai.
  • @Qualifier — leidžia aiškiai nurodyti, kurį įgyvendinimą įterpti.
  • @Profile — bean aktyvus tik tam tikru programos profiliu.
  • @Conditional — lankstesnis būdas, leidžiantis kurti bean pagal tam tikras sąlygas.

Pavyzdys naudojant @Qualifier:

public interface Service {
    void execute();
}

@Component("implA")
public class ServiceImplA implements Service {
    public void execute() { System.out.println("ImplA"); }
}

@Component("implB")
public class ServiceImplB implements Service {
    public void execute() { System.out.println("ImplB"); }
}

@Component
public class Client {
    private final Service service;

    public Client(@Qualifier("implB") Service service) {
        this.service = service;
    }
}

Šiuo būdu galima injektuoti reikalingą interfeiso įgyvendinimą priklausomai nuo sąlygų, profilių ar aiškių nurodymų.