Junior
Na čo sa používa anotácia @Bean v Spring Frameworku?
sobes.tech AI
Odpoveď od AI
Anotácia @Bean sa v Springu používa na deklarovanie metód, ktoré vytvárajú beany (objekty spravované kontejnerom IoC Springu). Metóda označená @Bean je vykonaná Springom a jej návratová hodnota je zaregistrovaná ako bean v kontexte aplikácie.
Hlavné prípady použitia:
- Konfigurácia externých knižníc: Keď nie je možné použiť anotácie Spring (@Component, @Service atď.) na triedy z externých knižníc.
- Jemné nastavenie tvorby beanu: Keď je potrebná zložitá inicializačná logika, ktorá je ťažká alebo nemožná na realizáciu pomocou anotácií.
- Podmienečné vytváranie beanov: Spolu s anotáciami
@Conditionalna vytváranie beanov v závislosti od určitých podmienok.
Príklad vytvárania beanu pomocou @Bean:
// V triede označenej s `@Configuration`
@Configuration
public class AppConfig {
@Bean
public DataSource dataSource() {
// Zložitá logika vytvárania DataSource
return new com.zaxxer.hikari.HikariDataSource(); // Príklad
}
@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
// Konfigurácia RestTemplate
return builder.setConnectTimeout(Duration.ofSeconds(5))
.setReadTimeout(Duration.ofSeconds(5))
.build();
}
}
Bean-y deklarované pomocou @Bean sú dostupné na injekciu (dependency injection) v iných komponentoch Springu. Predvolený názov beanu zodpovedá názvu metódy, ale môže byť explicitne nastavený pomocou atribútov name alebo value.
// Explicitné nastavenie názvu beanu
@Bean(name = "myCustomRestTemplate")
public RestTemplate restTemplate(RestTemplateBuilder builder) {
// ...
return builder.build();
}