Sobes.tech
Junior — Middle

Mi a különbség az @Bean és @Component annotációk között a Springben, és milyen esetekben kell őket használni?

sobes.tech MI

Válasz az MI-től

A @Component annotációt arra használják, hogy automatikusan észleljék és regisztrálják a osztályt Spring-beli beanként a komponens szkennelés (component scanning) segítségével. Ez közvetlenül a osztály fölött alkalmazandó, amelynek be kell kerülni a beanek közé.

A @Bean annotáció egy olyan metódus fölött alkalmazandó, amely egy @Configuration-ként megjelölt osztályban található. Ez a metódus egy objektumot ad vissza, amit Spring beanként regisztrál.

Fő különbségek:

  • @Component — automatikusan észlelt osztályok számára.
  • @Bean — kézi bean létrehozására konfigurációs osztályban.

Mikor használjuk:

  • @Component — amikor az osztály önmagában egy komponens, és automatikusan megtalálható.
  • @Bean — amikor külső osztályból kell bean-t létrehozni, vagy összetettebb logikára van szükség a létrehozás során.

Példa:

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

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