Sobes.tech
Junior — Middle

Spring-də @Bean və @Component annotasiyaları arasındakı fərq nədir və hansı hallarda istifadə edilməlidir?

sobes.tech Süni İntellekt

AI-dan cavab

@Component qeydi, komponent axtarışı (component scanning) vasitəsilə sinfi avtomatik olaraq Spring-binə aşkar etmək və qeydiyyatdan keçirmək üçün istifadə olunur. Bu, birbaşa sinfin üzərinə tətbiq olunur və sinifin bini olması lazımdır.

@Bean qeydi, @Configuration ilə işarələnmiş sinifdəki metoda tətbiq olunur. Bu metod, Spring tərəfindən qeydiyyata alınacaq obyekt qaytarır.

Əsas fərqlər:

  • @Component — avtomatik olaraq axtarış vasitəsilə tapılan sinflər üçün.
  • @Bean — konfiqurasiya sinifində əl ilə bina yaratmaq üçün.

Nə zaman istifadə etmək:

  • @Component — sinif özü komponentdir və avtomatik tapıla bilərsə.
  • @Bean — xarici sinifdən bina yaratmaq və ya daha mürəkkəb obyekt yaradılması loqikası tələb olunursa.

Nümunə:

@Component
public class MyService {
    // ...
}

@Configuration
public class AppConfig {
    @Bean
    public MyRepository myRepository() {
        return new MyRepository();
    }
}