Junior
Spring Framework-də @Bean qeydiyyatı nə üçün istifadə olunur?
sobes.tech Süni İntellekt
AI-dan cavab
Spring-də @Bean anotasyonu, Spring IoC konteyneri tərəfindən idarə olunan obyektlər (beanlər) yaradan metodları elan etmək üçün istifadə olunur. @Bean ilə işarələnmiş metod Spring tərəfindən icra olunur və onun geri qaytardığı dəyər tətbiq kontekstində bean kimi qeydiyyata alınır.
Əsas istifadə halları:
- Xarici kitabxanaların konfiqurasiyası: Xarici kitabxanalardan olan siniflərə Spring anotasyonları (@Component, @Service və s.) tətbiq etmək mümkün olmadıqda.
- Bean yaradılmasının incə tənzimlənməsi: Çətin və ya mümkün olmayan mürəkkəb başlanğıc loqikası tələb olunduqda.
- Şərti bean yaradılması:
@Conditionalanotasyonları ilə birlikdə, müəyyən şərtlərə əsasən beanlərin yaradılması.
@Bean istifadə edərək bean yaradılması nümunəsi:
// @Configuration ilə işarələnmiş sinifdə
@Configuration
public class AppConfig {
@Bean
public DataSource dataSource() {
// Çətin DataSource yaradılma loqikası
return new com.zaxxer.hikari.HikariDataSource(); // Nümunə
}
@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
// RestTemplate konfiqurasiyası
return builder.setConnectTimeout(Duration.ofSeconds(5))
.setReadTimeout(Duration.ofSeconds(5))
.build();
}
}
@Bean ilə elan olunan beanlər digər Spring komponentlərində asılılıq qəbulu (dependency injection) üçün mövcuddur. Standart olaraq, bean adı metod adını əks etdirir, lakin onu name və ya value atributları ilə açıq şəkildə təyin etmək mümkündür.
// Bean adını açıq şəkildə təyin etmək
@Bean(name = "myCustomRestTemplate")
public RestTemplate restTemplate(RestTemplateBuilder builder) {
// ...
return builder.build();
}