Sobes.tech
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ı: @Conditional anotasyonları 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();
}