Junior
La ce se folosește adnotarea @Bean în Spring Framework?
sobes.tech AI
Răspuns de la AI
Adnotarea @Bean este utilizată în Spring pentru a declara metode care produc beans (obiecte gestionate de containerul IoC al Spring). Metoda marcată cu @Bean este executată de Spring, iar valoarea sa de retur este înregistrată ca un bean în contextul aplicației.
Cazurile principale de utilizare:
- Configurarea bibliotecilor externe: Când nu se pot aplica adnotări Spring (@Component, @Service etc.) la clasele bibliotecilor externe.
- Configurarea fină a creării bean-urilor: Când este necesară o logică complexă de inițializare a obiectului, dificil sau imposibil de realizat cu adnotări.
- Crearea condiționată a bean-urilor: Împreună cu adnotările
@Conditionalpentru a crea bean-uri în funcție de anumite condiții.
Exemplu de creare a unui bean cu @Bean:
// Într-o clasă marcată cu @Configuration
@Configuration
public class AppConfig {
@Bean
public DataSource dataSource() {
// Logică complexă de creare a DataSource
return new com.zaxxer.hikari.HikariDataSource(); // Exemplu
}
@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
// Configurarea RestTemplate
return builder.setConnectTimeout(Duration.ofSeconds(5))
.setReadTimeout(Duration.ofSeconds(5))
.build();
}
}
Bean-urile declarate cu @Bean sunt disponibile pentru injecție (dependency injection) în alte componente Spring. În mod implicit, numele bean-ului corespunde cu numele metodei, dar poate fi setat explicit cu atributele name sau value.
// Stabilirea explicită a numelui bean-ului
@Bean(name = "myCustomRestTemplate")
public RestTemplate restTemplate(RestTemplateBuilder builder) {
// ...
return builder.build();
}