Junior — Middle
Kokia yra skirtumas tarp @Bean ir @Component anotacijų Spring, ir kokiais atvejais jas naudoti?
sobes.tech AI
Atsakymas iš AI
@Component žymuo naudojamas automatiškai aptikti ir registruoti klasę kaip Spring-bieną per komponentų nuskaitymą (component scanning). Jis taikomas tiesiogiai klasei, kuri turi tapti biu.
@Bean žymuo taikomas metodui, esančiam @Configuration pažymėtame klasėje. Šis metodas grąžina objektą, kurį Spring įregistruos kaip biu.
Pagrindiniai skirtumai:
@Component— automatiškai aptinkami skenavimo būdu.@Bean— rankiniu būdu sukuriamas biu konfigūracijos klasėje.
Kada naudoti:
@Component— kai klasė pati yra komponentas ir gali būti automatiškai rasta.@Bean— kai reikia sukurti biu iš išorinės klasės arba kai reikalinga sudėtingesnė objekto kūrimo logika.
Pavyzdys:
@Component
public class MyService {
// ...
}
@Configuration
public class AppConfig {
@Bean
public MyRepository myRepository() {
return new MyRepository();
}
}