Sobes.tech
Junior

Co jsou to beany v kontextu Java a Spring?

sobes.tech AI

Odpověď od AI

V kontextu Java a Spring je bean objekt, který je spravován kontejnerem Spring IoC (Inversion of Control).

Klíčové body:

  • Objekt: Je to jakýkoli běžný Java objekt.
  • Správa Spring: Kontejner Spring je zodpovědný za:
    • Vytváření instancí beanů.
    • Konfiguraci (injekci závislostí).
    • Řízení životního cyklu (inicializace, použití, ukončení).
  • Konfigurace: Beany jsou definovány pomocí XML, anotací (@Component, @Service, @Repository, @Controller, @Bean) nebo Java-based konfigurace.
  • Stavy: Většina beanů jsou singletony v kontextu Spring Container podle výchozího nastavení, ale mohou mít i jiné scope: prototype, request, session a global session.

Příklad definice beanu pomocí anotace @Component:

// Třída, kterou Spring Container rozpozná jako bean
@Component
public class MyService {

    // Závislost, kterou Spring injektuje
    private final MyRepository myRepository;

    // Konstruktor pro injekci závislosti
    public MyService(MyRepository myRepository) {
        this.myRepository = myRepository;
    }

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

Příklad definice beanu pomocí Java-based konfigurace:

// Konfigurační třída
@Configuration
public class AppConfig {

    // Metoda, která deklaruje bean
    @Bean
    public MyService myService(MyRepository myRepository) {
        return new MyService(myRepository);
    }

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

Beany tvoří základ vaší Spring aplikace, zajišťují propojenost a správu komponent.