Sobes.tech
Junior

Spring'de @Service, @Repository ve @Controller anotasyonları arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Bunlar, uygulamanın belirli katmanlarını bileşen olarak işaretlemek için kullanılan Spring anotasyonlarıdır:

  • @Service: İş mantığını temsil eden sınıflar için kullanılır. Genellikle, depo katmanından alınan verileri işleyen yöntemler içerir.
  • @Repository: Veri depolama katmanı ile etkileşime giren sınıflar için kullanılır (örneğin, veritabanı). Veri erişimi için yöntemler sağlar.
  • @Controller: Gelen HTTP isteklerini işleyen sınıflar için kullanılır. Genellikle, isteğe yanıt olarak görünüm veya veri döndüren yöntemler içerir.

Tüm bu anotasyonlar, @Component'i genişleten stereotip anotasyonlarıdır ve Spring'in bu sınıfları otomatik olarak algılamasını ve uygulama bağlamında bean olarak kaydetmesini sağlar. En önemli farkları, sınıfın mimarideki rolünü belirten semantik farktır. Spring, bu anotasyonları kullanarak katmanlara özgü işlevleri uygulayabilir, örneğin:

  • Spring Data JPA, @Repository ile işaretlenmiş sınıfları otomatik olarak tarar ve repository uygulamaları oluşturur.
  • Spring MVC, URL isteklerini controller metodlarına eşlemek için @Controller kullanır.