Sobes.tech
Junior

Mi az a bean a Java és Spring kontextusában?

sobes.tech MI

Válasz az MI-től

Java és Spring kontextusában egy bean egy olyan objektum, amelyet a Spring IoC (Inversion of Control) konténer kezel.

Fő pontok:

  • Objektum: Bármilyen tipikus Java objektum.
  • Spring által történő kezelés: A Spring Konténer felelős:
    • Bean példányok létrehozása.
    • Konfiguráció (függőségek injektálása).
    • Az életciklus kezelése (kezdeti, használat, befejezés).
  • Konfiguráció: A bean-ek XML, annotációk (@Component, @Service, @Repository, @Controller, @Bean) vagy Java-alapú konfiguráció segítségével definiálhatók.
  • Állapotok: A legtöbb bean singleton a Spring Konténer alapértelmezett kontextusában, de lehetnek más scope-ok is: prototype, request, session és global session.

@Component annotációval történő bean-definíció példája:

// Osztály, amit a Spring Konténer bean-ként ismer fel
@Component
public class MyService {

    // Függőség, amit a Spring injektál
    private final MyRepository myRepository;

    // Konstruktor a függőség injektálásához
    public MyService(MyRepository myRepository) {
        this.myRepository = myRepository;
    }

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

Java-alapú konfigurációval történő bean-definíció példája:

// Konfigurációs osztály
@Configuration
public class AppConfig {

    // Metódus, ami bean-t deklarál
    @Bean
    public MyService myService(MyRepository myRepository) {
        return new MyService(myRepository);
    }

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

A bean-ek a Spring alkalmazásának vázát alkotják, biztosítva a komponensek összekapcsoltságát és kezelését.