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();
}
}