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:
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.
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.
Girilen parolaların eşleşip eşleşmediği form gönderilmeden JS ile test ediliyor.
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.
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.
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.
Kaydolduğumuz bilgiler ile giriş yapıyorum. Başarılı giriş yapıldığında Spring Security beni makale ekleme sayfasına yönlendiriyor.
Şimdi herhangi bir konuda bir şeyler yazıp Kaydet diyelim.
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.
Bizim eklediğimiz makale görünüyor. İçeriği İçin Tıklayın diyelim.
Makalemizin içeriği başarı ile görüntülendi. Şimdi sağ üstteki Çıkış İçin Tıklayın’a basalım.
Çı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.
Tebrikler. Çok başarılı ve faydalı bir çalışma.
Teşekkür ederim.
İyi günler. Hocam bu projenin video ile sıfırdan başlamak sureti ile anlatan bir video güzel olurdu. İde olarak da Netbeans İDEA olursa çok güzel olurdu