Junior — Middle
Spring'de @Bean ve @Component anotasyonları arasındaki fark nedir ve hangi durumlarda kullanılmalıdırlar?
sobes.tech yapay zeka
AI'dan gelen yanıt
@Component anotasyonu, bileşen taraması (component scanning) yoluyla sınıfın otomatik olarak Spring bileşiği olarak algılanması ve kaydedilmesi için kullanılır. Bu, doğrudan sınıfın üzerinde uygulanır ve sınıfın bileşik olması gerekir.
@Bean anotasyonu, @Configuration ile işaretlenmiş bir sınıf içindeki metoda uygulanır. Bu metod, Spring tarafından bir bileşik olarak kaydedilecek bir nesne döner.
Ana farklar:
@Component— otomatik olarak tarama yoluyla algılanan sınıflar için.@Bean— bir yapılandırma sınıfında manuel olarak bileşik oluşturmak için.
Ne zaman kullanılır:
@Component— sınıf kendisi bir bileşen ise ve otomatik olarak bulunabiliyorsa.@Bean— harici bir sınıftan bileşik oluşturulması gerekiyorsa veya daha karmaşık nesne oluşturma mantığı gerekiyorsa.
Örnek:
@Component
public class MyService {
// ...
}
@Configuration
public class AppConfig {
@Bean
public MyRepository myRepository() {
return new MyRepository();
}
}