Sobes.tech
Junior

Zašto se koristi anotacija @Bean u Springu?

sobes.tech АИ

Одговор од АИ

Oznaka @Bean koristi se u okviru Spring Framework-a za eksplicitno deklarisanje zasebnog beana (komponente) koji treba da bude kreiran i upravljan od strane Spring IoC kontejnera.

Glavni razlozi za njenu upotrebu:

  • Integracija eksternih biblioteka: Omogućava lako integrisanje objekata kreiranih od strane eksternih biblioteka koje nisu označene anotacijama @Component, @Service, @Repository itd.
  • Konfiguracija objekata: Pruža potpunu kontrolu nad procesom kreiranja objekta, omogućavajući mu da prima zavisnosti i konfiguriše svoja svojstva u Java konfiguraciji.
  • Više instanci iste klase: Omogućava kreiranje više beana iste klase sa različitim konfiguracijama.
  • Uslovno kreiranje beana: U kombinaciji sa @Conditional, može se kreirati bean u zavisnosti od određenih uslova.
  • Jasno razdvajanje konfiguracije i poslovne logike: Konfiguracija aplikacije je fokusirana u klasama označenim sa @Configuration, dok je poslovna logika u klasama sa @Component.

Primer upotrebe u @Configuration klasi:

// MyConfiguration.java
package com.example;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MyConfiguration {

    @Bean
    public MyService myService() {
        // Kreiranje i konfiguracija servis objekta
        return new MyService();
    }

    @Bean
    public DataSource dataSource() {
        // Kreiranje i konfiguracija izvora podataka
        // Ovo može biti objekat iz ekstrene biblioteke
        return new com.example.DataSourceImpl();
    }
}