Sobes.tech
Junior

Mit használ az @Bean annotáció a Spring Framework-ben?

sobes.tech MI

Válasz az MI-től

A @Bean annotációt a Spring a Spring IoC konténer által kezelt objektumok (beanek) létrehozására szolgáló metódusok deklarálására használja. A @Bean-nel ellátott metódus a Spring által kerül meghívásra, és a visszatérési értéke regisztrálásra kerül a alkalmazás kontextusában, mint bean.

Főbb felhasználási esetek:

  • Harmadik fél könyvtárak konfigurálása: Amikor nem lehet alkalmazni Spring annotációkat (@Component, @Service stb.) harmadik fél könyvtárak osztályaira.
  • Bean létrehozás finomhangolása: Amikor összetett inicializációs logika szükséges, amit nehéz vagy lehetetlen annotációkkal megvalósítani.
  • Feltételes bean létrehozás: Az @Conditional annotációkkal együtt, bizonyos feltételek szerint történő bean létrehozására.

Példa @Bean segítségével történő bean létrehozására:

// Egy @Configuration annotációval ellátott osztályban
@Configuration
public class AppConfig {

    @Bean
    public DataSource dataSource() {
        // Összetett DataSource létrehozási logika
        return new com.zaxxer.hikari.HikariDataSource(); // Példa
    }

    @Bean
    public RestTemplate restTemplate(RestTemplateBuilder builder) {
        // RestTemplate konfigurálása
        return builder.setConnectTimeout(Duration.ofSeconds(5))
                      .setReadTimeout(Duration.ofSeconds(5))
                      .build();
    }
}

A @Bean-nel deklarált bean-ek elérhetőek más Spring komponensekben való dependency injection-re. Alapértelmezés szerint a bean neve megegyezik a metódus nevével, de ezt explicit módon is meg lehet adni az name vagy value attribútumokkal.

// Explicit név megadása a bean-nek
@Bean(name = "myCustomRestTemplate")
public RestTemplate restTemplate(RestTemplateBuilder builder) {
    // ...
    return builder.build();
}