MVC yani Model/View/Controller. Burada service katmanı yok. Sadece MVC kullanarak bir uygulama geliştirmeyi düşünüyorsan bir service katmanına ihtiyacın da olmayacak. Yani söylemek istediğim; MVC ile Service dediğin kısım birbirinden ayrı ele alınması gereken bir konu.
Ayrıca Model->DB dediğin konu da çok doğru bir tanım olmuyor.
Service katmanını anlamak için önce n-tier architecture konusunu bilmen gerekiyor. Genelde bu tier sayısı 3 olur. 3-katmanlı mimari olarak kullanılıyor daha çok. Senin burada sorduğun sorunun cevabı n-tier den gelen ve business katmanının karşılığı olan kısım oluyor ki; Spring bunun desteğini zaten MVC olmadan da verebiliyor. Bunu biraz daha resmi bir tanıma taşıyalım.
Yazılımda daha önceden kullanılan kavram n-katmanlı mimari.
Önce onu biraz tanıyalım/hatırlayalım.

3 katmanlı mimaride kullanıcıya verdiğin ekran(presentation/sunum), asıl işi yapan kod kısmı(business) ve DB erişim (data access) kısımları birbirinden ayrılır ki kodları birbirine girip çorba olmasın. Aslında uygulaması zor bir konu değil. Senin sorduğun service katmanı tam olarak buradaki iş mantığı katmanı (business layer) oluyor.
Model->DB dediğin yer veri erişim katmanı(Data access layer) oluyor ki MVC ile işi yok.
Peki MVC ile bunun alakası nedir? Önceleri yazılım konusunda bu kadar tecrübe yokken ve yazılan uygulamaların kod tabanları bu kadar büyük değilken bu katmanlar birbirinden çok ayrılmıyordu. Şimdiki tabirle karışık yazılıyordu. Zamanla uygulamaların bakımları, geliştirmeleri farklılaşmaya başladı. Daha sonradan ekran görüntüsünü veren, işi yapan, veriye erişen katmanlar birbirinden ayrıldı. Aslında mantıken eğer arada network, farklı donanımlar gibi etkenler varsa katmanları daha da artırablirsin. Bu katmanlara da katmanlı mimari ismi verildi. Sonra ekranı tasarlamak ve bakımlarını yapmak için sunum katmanı kendi içinde veriyi tutan (model), bu veriyi gösteren(view), verinin gösterilme şartlarının belirlendiği (controller) kavramlara ayrıldı. Senin sorduğun soruda detaylarını bilmesen bile MVC kullanırken aynı anda n-tier mimari de kullanmış oluyorsun. Normalde MVC kullanmasan bile n-tier kullanabilirsin. Hatta kullan.
Spring de kendi çapında bunlara isim veriyor.
- Sunum/Presentation için MVC - @Controller
- İş/business için Service -@Service
- Veri erişim/data access için Repository - @Repository
Umarım güzel anlatabilmişimdir.
Kolay gelsin.