Skip to content

21. Sonuç

Bu belgede sunulanları hatırlayalım:

  • servletler ve sayfalar ile Java'da web programlamanın temelleri JSP
  • mimariye giriş MVC
  • 3 katmanlı mimariye giriş
  • Spring'e giriş IoC
  • bu konuları açıklayan örnekler

Bu noktaya kadar gelen okuyucunun, kendi Java web uygulamalarını geliştirebilecek duruma geldiğini düşünüyoruz. Ayrıca, bu belgede incelenenlere benzer diğer geliştirme yöntemlerini de ele almaya hazırdır. Burada geliştirilen web uygulamalarının mimarisini hatırlayalım:

Basit uygulamalar için bu mimari yeterlidir. Bu türden birkaç uygulama yazdığımızda, iki farklı uygulamanın servletlerinin:

  1. kullanıcı tarafından talep edilen eylemi işlemek için hangi [doAction] yönteminin çalıştırılması gerektiğini belirlemek için aynı mekanizmaya sahip oldukları
  2. aslında sadece bu [doAction] yöntemlerinin içeriği bakımından farklılık gösterir

Bu durumda şu eğilim ortaya çıkar:

  • işlemi (1) onu kullanan uygulamadan bağımsız, genel bir servlet içinde faktörlere ayırmak
  • işlemi (2), genel servlet hangi uygulamada kullanıldığını bilmediğinden, harici sınıflara devretmek
  • bir yapılandırma dosyası yardımıyla, kullanıcı tarafından talep edilen eylem ile bunu işlemesi gereken sınıf arasında bağlantı kurmak

Geliştiricilere yukarıdaki kolaylıkları sağlamak amacıyla, genellikle "çerçeveler" olarak adlandırılan araçlar ortaya çıkmıştır. Bunların en eskisi ve muhtemelen en bilineni Struts'tur (http://struts.apache.org/). Jakarta Struts, Apache Yazılım Vakfı'nın bir projesidir (www.apache.org). Bu çerçeve, (http://tahe.developpez.com/java/struts/) adresinde açıklanmaktadır.

Daha yakın zamanda ortaya çıkan Spring çerçeve (http://www.springframework.org/), Struts’a benzer olanaklar sunar. Aslında bu, Spring'in MVC modülüdür. Kullanımı birçok makalede açıklanmıştır (http://tahe.developpez.com/java/springmvc-part1/).

Spring, 3 katmanlı bir uygulamanın [web] katmanındaki MVC kavramıyla sınırlı kalmaz. Web dışı uygulamalarda bile kullanışlıdır.

Böylece, temel bir kişi listesi yönetimi örneği üzerinde, 3 katmanlı bir mimari içinde MVC mimarisini uygulayarak dersimizi tamamladık.

Uygulamanın 1. sürümünde, kişi listesi bellekte tutuluyordu ve web uygulaması kapatıldığında kayboluyordu. Diğer sürümlerde ise kişi listesi bir veritabanı tablosunda tutulmaktadır. Dört farklı SGBD kullandık: Firebird, Postgres, MySQL ve SQL Server Express.

Spring IoC sayesinde, sürüm 1’deki [web] katmanı sonraki sürümlerde tamamen korunabildi. Böylece, bağımsız katmanlara sahip ntier mimarileri oluşturulabileceğini gösterdik.

Veritabanı kullanan sürümlerde, [dao] ve [service] katmanlarının oluşturulmasında Spring’in sağladığı katkıyı gösterdik. Spring’in iBATIS ile entegrasyonu sayesinde, yalnızca yapılandırma dosyaları bakımından farklılık gösteren dört sürüm oluşturabildik. Dört sürümde de [dao] katmanını uygulamak için aynı [DaoImplCommon] sınıfı kullanıldı. SGBD Firebird’e özgü bir sorunu yönetmek için bu sınıftan türetme yapmak zorunda kaldık, ancak sınıfı değiştirmemiz gerekmedi.

Son olarak, Spring'in [service] katmanında işlemleri bildirimsel bir şekilde nasıl yönetmemizi sağladığını gösterdik.

Okuyucuların, bu ürünün sunduğu tüm özellikleri keşfetmeleri tavsiye edilir.