Junior — Middle
Milline on erinevus @Bean ja @Component annotatsioonide vahel Springis ning millal neid kasutada?
sobes.tech AI
Vastus AI-lt
@Component märgis kasutatakse klassi automaatseks tuvastamiseks ja registreerimiseks Spring-biinina komponendiskaneerimise (component scanning) kaudu. See rakendub otse klassi kohal, mis peab muutuma biiniks.
@Bean märgis rakendub meetodile, mis asub märgistatud @Configuration-i klassis. See meetod tagastab objekti, mille Spring registreerib biinina.
Peamised erinevused:
@Component— automaatselt skaneerimise teel tuvastatud klasside jaoks.@Bean— käsitsi loodud biin konfiguratsiooniklassis.
Millal kasutada:
@Component— kui klass ise on komponent ja seda saab automaatselt leida.@Bean— kui tuleb luua biin välisest klassist või kui on vaja keerulisemat objekti loomise loogikat.
Näide:
@Component
public class MyService {
// ...
}
@Configuration
public class AppConfig {
@Bean
public MyRepository myRepository() {
return new MyRepository();
}
}