Sobes.tech
Junior

Čo sú to beany v kontexte Java a Spring?

sobes.tech AI

Odpoveď od AI

V kontexte Javy a Springu je bean objekt, ktorý je spravovaný kontajnerom Spring IoC (Inversion of Control).

Kľúčové body:

  • Objekt: Je to akýkoľvek bežný Java objekt.
  • Správa Spring: Kontajner Spring je zodpovedný za:
    • Vytváranie inštancií beanov.
    • Konfiguráciu (injektáž závislostí).
    • Riadenie životného cyklu (inicializácia, použitie, ukončenie).
  • Konfigurácia: Beany sú definované pomocou XML, anotácií (@Component, @Service, @Repository, @Controller, @Bean) alebo Java-bázovanej konfigurácie.
  • Stavy: Väčšina beanov sú singletony v kontexte Spring kontajnera podľa predvoleného nastavenia, ale môžu mať aj iné scope: prototype, request, session a global session.

Príklad definície beana pomocou anotácie @Component:

// Trieda, ktorú Spring kontajner rozpozná ako bean
@Component
public class MyService {

    // Závislosť, ktorú Spring injektuje
    private final MyRepository myRepository;

    // Konštruktor na injektovanie závislosti
    public MyService(MyRepository myRepository) {
        this.myRepository = myRepository;
    }

    public void doSomething() {
        myRepository.getData();
    }
}

Príklad definície beana pomocou Java-bázovanej konfigurácie:

// Konfiguračná trieda
@Configuration
public class AppConfig {

    // Metóda, ktorá deklaruje bean
    @Bean
    public MyService myService(MyRepository myRepository) {
        return new MyService(myRepository);
    }

    @Bean
    public MyRepository myRepository() {
        return new MyRepository();
    }
}

Beany tvoria kostru vašej Spring aplikácie, zabezpečujúc súdržnosť a správu komponentov.