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.

Kısa özet: Üç annotation da Spring Bean oluşturur. Ancak @Service iş mantığı, @Repository veri erişimi, @Component ise genel kullanım içindir.

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 Scan sayesinde Spring, annotation’ları otomatik algılar.

@Component Nedir?

Spring Component yapısı

@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 ve @Repository aslında @Component’in özelleştirilmiş halidir.

@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.

Controller → Service → Repository akışı en yaygın mimaridir.

@Repository Nedir?

Spring Repository yapısı

@Repository, veri erişim katmanında kullanılır.

Genellikle:

  • Database işlemleri
  • JPA / Hibernate kullanımı
  • CRUD operasyonları

bu katmanda gerçekleştirilir.

@Repository, exception handling konusunda ekstra avantaj sağlar (DataAccessException dönüşümü).

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
Doğru annotation kullanımı, kod okunabilirliğini ve mimariyi ciddi şekilde iyileştirir.

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.

Etiketler: spring annotation, component service repository, spring boot katmanlı mimari, java spring tutorial

Latest Software Developers - Yazılım Blog Yazarı Profil Resmi

Yazar

LatestSoftwareDevelopers

Blog where the most up-to-date software is followed. (En güncel yazılımların takip edildiği blog sitesi)

Spring Boot ile ilgili yorumlar

Yorum Paylaş

EMail Zorunlu alanlar * *