Maven Spring

Spring MVC İle Basit Bir Blog Projesi

Merhabalar arkadaşlar.

Uzunca bir süredir devam eden iş arayışım sebebi ile mülakatlara gidip gelmekten ve  boş bulduğum vakitlerde hızlıca yeni şeyler öğrenmeye çalışmamdan dolayı buraya yazı giremiyorum. İnşaAllah yakın zaman içinde bu iş bulma sürecini bitiririm. Bu süre zarfında öğrenmeye niyetimin olduğu Spring MVC bilgisi edinmek için bir proje yapayım dedim ve proje ile ilgili de bir yazı yazayım dedim.

Daha önce JSF ile bir tanesi Spring bir tanesi de EJB kullanarak birer basit blog projesi yapmıştım. Bu kez de Spring MVC ve Spring’in ilave bazı teknolojileri bir blog projesi yapayım dedim.

Öncelikle bu projenin kaynak kodlarına https://github.com/ilkgunel/BlogProjectWithSpringMVC adresinden ulaşıp kodlardan faydalanabilirsiniz.

Şimdi bu projede neler kullandım ondan bahsedeyim. Listesi şöyle:

  • Proje build tool’u olarak ve bağımlılıkları yönetmek için Maven kullandım.
  • Projedeki sayfaları sunmak için  JSP kullandım.
  • Projenin bel kemiği olan Spring MVC ile MVC mimarisini uyguladım.
  • Projede sayfalara erişim yetkisi atamakta ve güvenlik sağlamakta Spring Security kullandım.
  • Transaction yönetimi için Spring Data kullandım.
  • Eclipselink’in sağlayıcılığında JPA kullanarak ORM uyguladım.
  • Veri tabanı olarak benim favori veri tabanı yazılımım olan MySQL kullandım.
  • CSS şablonu olarak http://www.free-css.com/free-css-templates/page13/lime-green adresindeki ücretsiz şablonu kullandım.
  • Üye kayıt sayfasındaki telefon numarası ve doğum tarihindeki masklama işlemi için https://igorescobar.github.io/jQuery-Mask-Plugin/ adresindeki kütüphaneyi kullandım.

Projenin kodlarını alıp kendi makinanızda çalıştırmak için herhangi bir sunucu kullanabilirsiniz. Tomcat, Jetty, Glassfish, Wildfly vs. vs. Projeyi çalıştırmak için EJB container gerekliliği yoktur! Hafif bir sunucu yazılımı olan Tomcat ya da Jetty ile çok rahat işimizi görebiliriz. Ben projeyi Tomcat üstünde yazdım.

Projeden de biraz bahsetmek gerekirse ekran görüntüleri ile anlatmaya çalışayım.

Projeyi çalıştırdığımızda bizi şöyle bir ana sayfa karşılıyor:

Screen Shot 2016-07-09 at 21.30.35

Ana sayfa içerisinden proje içerisinde yazdığım bazı işlemlere erişim sağlanabilir. Örneğin “Makale Eklemek”. Şimdi Makale Eklemek İçin Tıklayın linkine tıklayalım.

Screen Shot 2016-07-09 at 21.33.21

Makale ekleme sayfası Spring Security tarafından yetkisiz erişimlere kapatıldığından bu sayfaya ulaşmak için kayıt olmak ve oturum açmak gerekiyor. Şimdi bir kayıt işlemi yapalım akabinde de login olalım. Üye Olmak İçin Tıklayın’a tıklıyorum.

Screen Shot 2016-07-09 at 21.37.14

Girilen parolaların eşleşip eşleşmediği form gönderilmeden JS ile test ediliyor.

Screen Shot 2016-07-09 at 21.43.34

Eğer geçersiz formatta bir e-mail adresi gönderilmek istenirse Spring MVC validation ile girilen reddedilip işlem yapılmıyor. İlgili bölgeyi [email protected] şeklinde değiştirip Kaydet diyorum.

Screen Shot 2016-07-09 at 21.46.29

Forma hatasız bir veri girişinin ardından bize kaydın başarı ile yapıldığı söyleniyor. Bir de veri tabanını kontrol edelim.

Screen Shot 2016-07-09 at 21.50.03

Kayıt veri tabanına da sağlıklı görünüyor. Password sütununa kullanıcının girdiği parola MD5 ile hashlendikten sonra kaydediliyor. Şimdi tekrar Makale Eklemek İçin Tıklayın diyelim ve giriş yapalım.

Screen Shot 2016-07-09 at 21.52.46

Kaydolduğumuz bilgiler ile giriş yapıyorum. Başarılı giriş yapıldığında Spring Security beni makale ekleme sayfasına yönlendiriyor.

Screen Shot 2016-07-09 at 21.53.40

Şimdi herhangi bir konuda bir şeyler yazıp Kaydet diyelim.

Screen Shot 2016-07-09 at 21.56.12

Screen Shot 2016-07-09 at 21.58.19

Screen Shot 2016-07-09 at 21.58.52

Makale veri tabanına kaydedilirken kim tarafından kaydedildiği bilgisi Spring Security’nin current user metodu ile alınıyor. Şimdi Makale Listesi İçin Tıklayın diyelim.

Screen Shot 2016-07-09 at 22.00.36

Bizim eklediğimiz makale görünüyor. İçeriği İçin Tıklayın diyelim.

Screen Shot 2016-07-09 at 22.01.39

Makalemizin içeriği başarı ile görüntülendi. Şimdi sağ üstteki Çıkış İçin Tıklayın’a basalım.

Screen Shot 2016-07-09 at 22.03.58

Çıkış yaptığımızda Spring Security bizim ayarlamamızla bizi Login sayfasına yönlendiriyor.

Proje hakkında temel olarak bu şekilde bilgi vermiş olayım arkadaşlar. Projede kullandığımız veri tabanını da ben github reposuna ekledim ancak projeyi çalıştırırken illa ki SQL dosyasına mecbur değilsiniz. Siz sadece projeyi IDE’nizde çalıştırmadan önce MySQL veritabanınızda SpringMVCBlogProject adında bir veritabanı oluşturursanız JPA sizin için tabloları oluşturacak. Ancak bir sorunla karşılaşırsanız direk SQL dosyasını import edebilirsiniz. Başka bir blog yazısında görüşene kadar sağlıcakla kalın. Görüşmek üzere.

Selam Ve Sevgilerimle

Not : Yazıdaki kapak resmi http://o7planning.org/en/10129/image-provider?type=i&imageId=710264 adresinden alınmıştır.

  • abdullah

    Tebrikler. Çok başarılı ve faydalı bir çalışma.

    • İlkay Günel

      Teşekkür ederim.