Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi

Sorunuz mu var? Belki de çoktan soruldu..

0
Spring'de @Component, @Service, @Controller ve @Repository hangi amaçla kullanılır?

Açık 1 Cevaplar 19 Gösterim Unix/Linux
Spring'de @Component, @Service, @Controller  ve @Repository ne işe yarar. Farkları nelerdir?

1 cevap

0
Spring içinde @service, @controller ve @repository annotationları arasında gerçekleştirimde bir fark yok. Hepsini birbiri yerine kullanabilirsin. Sadece @component diğerlerinden ayrılabiliyor. İlk üçü için ise mantıksal ayrım genelde uygulanıyor.

@Controller, @Service, @Repository = Programsal olarak fark yok. Mantıksal olarak MVC yapısında Controller var. Controller sınıflarını @Controller annotation ile belirtmek kod okunurluluğunu artırır. n-katmanlı mimaride de veri erişim katmanı ile kodun iş katmanı birbirinden ayrılır. @Repository veri erişim katmanı olarak kullanılan sınıfların belirlenmesinde @service ise iş katmanında yani detaylı iş kodlarının olduğu sınıfları belirlemek için kullanılır. Bu üç annotation da belirtildiği sınıfı application scope (uygulama alanı) olarak oluşturulur.

@Component ise spring tarafından yönetilmesi istenen bütün sınıflar için kullanılabilir. Component'in farkı bu annotation ile yaratılacak sınıfın hangi alanda geçerli olacağını belirtebilirsin. Yani @Component(['session', 'request','application']) session/request/application/kendine ait bir alanda (scope) kullanabilirsin.
9 Aralık 2017 kenan (2,835 puan) cevapladı
...