Spring @Component, @Service ve @Repository Nedir? Aralarındaki Farklar
Bu yazıda Spring Framework içerisinde kullanılan @Component, @Service ve @Repository annotationlarının ne işe yaradığını ve aralarındaki farkları detaylı şekilde ele alıyoruz.
Spring Annotation Mantığı
Spring uygulamalarında katmanlı mimari bulunur. Bu katmanlar: presentation, service (business), data access (DAO) şeklindedir.
Spring, bu katmanları otomatik yönetmek için sınıfları tarar ve uygun annotation’lara sahip olanları ApplicationContext içerisine bean olarak ekler.
@Component Nedir?
@Component, Spring içerisinde en genel annotation’dır.
Belirli bir katmana ait olmayan yardımcı sınıflar için kullanılır. Örneğin:
- Utility sınıfları
- Helper servisler
- Validation işlemleri
@Service Nedir?
@Service, uygulamanın iş mantığını (business logic) içeren katmanda kullanılır.
Bu katman genellikle:
- İş kuralları
- API çağrıları
- Veri işleme süreçleri
gibi işlemleri içerir.
@Repository Nedir?
@Repository, veri erişim katmanında kullanılır.
Genellikle:
- Database işlemleri
- JPA / Hibernate kullanımı
- CRUD operasyonları
bu katmanda gerçekleştirilir.
Annotation Karşılaştırması
| Annotation | Kullanım Alanı | Katman |
|---|---|---|
| @Component | Genel kullanım | Her yer |
| @Service | İş mantığı | Service |
| @Repository | Veri erişimi | DAO |
Hangi Durumda Hangisi Kullanılmalı?
- @Component: Genel yardımcı sınıflar
- @Service: İş mantığı içeren sınıflar
- @Repository: Veritabanı işlemleri
Sonuç
@Component, @Service ve @Repository aslında aynı temel yapıya sahip olsa da, kullanım amaçları farklıdır.
Bu ayrım sayesinde Spring uygulamalarında daha düzenli, sürdürülebilir ve anlaşılır bir mimari kurmak mümkündür.