Sobes.tech
Junior

Šta su beani u kontekstu Java i Spring?

sobes.tech АИ

Одговор од АИ

U kontekstu Jave i Springa, bean je objekat koji je upravljan od strane Spring IoC (Inversion of Control) kontejnera.

Ključne tačke:

  • Objekat: To je bilo koji tipičan Java objekat.
  • Upravljanje od strane Springa: Spring kontejner je odgovoran za:
    • Kreiranje instanci beana.
    • Konfiguraciju (ubrizgavanje zavisnosti).
    • Upravljanje životnim ciklusom (inicijalizacija, korišćenje, završetak).
  • Konfiguracija: Beani se definišu putem XML, anotacija (@Component, @Service, @Repository, @Controller, @Bean) ili Java-bazirane konfiguracije.
  • Stanja: Većina beana su singletoni u kontekstu Spring kontejnera po defaultu, ali mogu imati i druge scope-ove: prototype, request, session i global session.

Primer definisanja beana korišćenjem anotacije @Component:

// Klasa koja je prepoznata od strane Spring kontejnera kao bean
@Component
public class MyService {

    // Zavisnost koju će Spring injektovati
    private final MyRepository myRepository;

    // Konstruktor za injekciju zavisnosti
    public MyService(MyRepository myRepository) {
        this.myRepository = myRepository;
    }

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

Primer definisanja beana korišćenjem Java-bazirane konfiguracije:

// Konfiguraciona klasa
@Configuration
public class AppConfig {

    // Metod koji deklarise bean
    @Bean
    public MyService myService(MyRepository myRepository) {
        return new MyService(myRepository);
    }

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

Beani čine okosnicu vaše Spring aplikacije, obezbeđujući koheziju i upravljanje komponentama.