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
@Conditionalannotá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();
}