Junior
Milleks kasutatakse @Bean annotatsiooni Spring Frameworkis?
sobes.tech AI
Vastus AI-lt
@Bean annotatsioon kasutatakse Springis meetodite deklareerimiseks, mis loovad bean'e (objekte, mida hallatakse Spring IoC konteineris). Meetod, millele on märgitud @Bean, täidetakse Springi poolt ning selle tagastatud väärtus registreeritakse rakenduse kontekstis bean'ina.
Peamised kasutusjuhtumid:
- Kolmanda osapoole teekide konfigureerimine: Kui ei ole võimalik rakendada Spring annotatsioone (@Component, @Service jms) kolmanda osapoole klassidele.
- Täpne bean'i loomise konfiguratsioon: Kui on vaja keerulist objekti initsialiseerimise loogikat, mida on raske või võimatu saavutada annotatsioonide abil.
- Tingimuslik bean'ide loomine: Kasutades
@Conditionalannotatsioone, et luua bean'e sõltuvalt teatud tingimustest.
Näide @Bean abil bean'i loomise kohta:
// Konfiguratsiooniklassis
@Configuration
public class AppConfig {
@Bean
public DataSource dataSource() {
// Keeruline DataSource loomise loogika
return new com.zaxxer.hikari.HikariDataSource(); // Näide
}
@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
// RestTemplate seadistamine
return builder.setConnectTimeout(Duration.ofSeconds(5))
.setReadTimeout(Duration.ofSeconds(5))
.build();
}
}
Bean'id, mis on deklareeritud @Bean abil, on kättesaadavad sõltuvuste süstimiseks (dependency injection) teiste Springi komponentide kaudu. Vaikimisi vastab bean'i nimi meetodi nimele, kuid seda saab määrata selgelt name või value atribuutide abil.
// Selge bean nime määramine
@Bean(name = "myCustomRestTemplate")
public RestTemplate restTemplate(RestTemplateBuilder builder) {
// ...
return builder.build();
}