Spring Boot MVC Uygulama Örneği: Kullanıcı Kayıt Formu Giriş Çıkış İşlemleri

Spring Boot
Spring Dersleri

Spring Boot Dersleri ve Spring Uygulama Örnekleri‘ne devam ediyoruz.

Spring Boot ile Thymeleaf kullanarak bir örnek uygulama geliştireceğiz. Uygulama örneğinde;

  • Kullanıcı Kayıt Formu Sayfası
  • Kullanıcı Giriş Formu Sayfası
  • Giriş Sonrası Karşılama Sayfası
  • Çıkış İşlemleri

olacaktır.

Spring Boot ile yapacağımız uygulamamızda kullanacağımız bağımlılıklar ve teknolojiler

  • Spring Boot
  • Spring Security
  • Spring MVC
  • Spring Data JPA
  • Thymeleaf
  • Bootstrap 4
  • Java 9
  • H2 Veritabanı
  • Maven

şeklindedir.

Spring Boot Uygulaması yaparken kullanacağım Ide IntelliJ IDEA Ultimate 2018.3.4.

Uygulamamızı bitirdikten sonra kullanımı aşağıdaki gibi olacaktır.

Spring Boot Uygulama Kullanıcı Giriş Kayıt İşlemleri

Spring Boot Uygulama Kullanıcı Giriş Kayıt İşlemleri

Projemizi IDE yardımı ile oluşturmaya başlayalım.

Spring Boot Bağımlılık

Spring Boot Bağımlılık

Yukarıdaki resimdeki gibi gerekli bağımlılıkları ekleyerek indirme işleminin tamamlanmasını bekliyoruz ve projemizi oluşturmaya hazır hale geliyor.

Maven bağımlılığımıza bakalım.

Şimdi Modellerimizi oluşturalım.

User modelimizi oluşturuyoruz.

Her kullanıcının bir rol yetkisi olacak bu rol yetkisi ile giriş işlemi sağlanacağı için Rol modeli oluşturuyoruz. User class’ı ile Rol ilişkisi ManyToMany bir ilişkidir.

Rol entitymizi oluşturalım.

Rol entitymizi de oluşturduk.

JPA Repository’mizi oluşturalım. JPA Repository sayesinde veritabanı ile iletişimin sağlanacağı bir interface yaratmış olacağız. Bu interface’i extend ederek veritabanı entitylerimizin interfacelerini yazacağız. UserRepository ve RoleRepositroy oluşturacağız ve bu iki class da JpaRepository’den extend olacak.

UserRepository oluşturalım.

RoleRepository oluşturalım.

Spring Data sayesinde repository classlarımızdaki alanları yazarak sorgu işlemi yapabiliyoruz.

Servis Katmanına geldi sıra. Servis katmanında yapılacak işlemlerin amacı veritabanındaki kullanıcı bilgileri ile kullanıcı formu tarafından gelecek olan bilgilerin karşılaştırılması, kullanıcı kayıt sayfasından gelecek bilgilerin ise kayıt edilmesi sağlamaktadır.

Servis katmanında kullancı kaydederken UserRepository’den faydalanılıyor. Kullanıcının rolleri için ise RoleRepository kullanılmakta.

Oluşturacağımız diğer bir Servis ise kullanıcı giriş yapmak istediğinde yetkilendirme işlemin gerçekleşeceği classtır. Bu class UserDetailsService Spring Security kütüphanesinden implement edilerek metodları Override ederek kullanılıyor. Yetkilendirme işlemlerini ve kullanıcı yönetim işlemlerini Spring Security’e veriyoruz. loadUserByUsername Sadece kullanıcı sorgulayıcı metodunda userRepository.findByUsername ile kullanıcıyı bulunuyor. getAuthorities metodu ile de kullanıcıya ait rollerin veritabanından alınmasını sağlayarak Spring’e verilmesi sağlanmış oluyor.

@Service ve @Transactional anotasyonlarını ekleyerek servis katmanı olduğu ve Transaction işlemlerini Spring’in yönetmesini sağlamaktayız.  İlgini Çekebilir: @Component,  @Service,  @Repository,  @Controller Anotasyonu

İlgini Çekebilir: Spring Component, Service, Repository, Controller Uygulama Örneği

Web sayfamız ile Java sınıflarımız arasında iletişim sağlayacak, köprü olacak sınıfımıza geldi sıra. Controller sınıfımızı oluşturacağız.

Controller sınıfımız web sayfalarımızın hangi url’de hangi sayfalara gideceğini, POST, GET işlemlerinde yapılacak işlemleri yapıyoruz.

Controller sayfamızda, registerPage kayıt sayfamızı gösterir. saveRegisterPage ise kullanıcı kayıt sayfasından gelen verileri alarak service üzerinden kaydeder.  Kullanıcı kayıt işleminde gelen veride bir sorun var ise  if (result.hasErrors()) kontrol ederek kayıt işleminde geçmeden kayıt sayfasında tekrar yönlendirerek işlemlerin kaldığı yerden devam etmesi sağlanmaktadır.

Ek olarak H2 veritabanında kendinize özel değişiklik yapmak ya da h2-console açmak istebilirsiniz. Eğer bu gibi işlemleri yapmak isterseniz aşağıdaki bağlantıya bakmanızı öneririm.

İlgini Çekebilir: Spring Boot H2 Gömülü Veritabanı Kullanmak

Backend tarafını bitirdik. Şimdi geldi sıra web sayfalarını yapacağız. Thymeleaf + Bootstrap ile sayfalarımızı yapcağız.

Index.html sayfamızı yapağız ve ekran görüntüsü aşağıdaki gibi olacak.

index sayfası

index sayfası

index sayfamız ise şöyle;

Kullancı kayıt sayfamızın görüntüsü aşağıdaki gibi olacak.

Üye Kaydı Ekranı

Üye Kaydı Ekranı

Üye kayıt sayfamızın kodlarına bakalım.

Kullanıcı Giriş Sayfası aşağıdaki gibi olacak.

Üye Kayıt Formu

Üye Kayıt Formu

Giriş kayıt ekranımızın kodları aşağıdaki gibidir.

Kullanıcı üye olduktan sonra karşılanacak ekran aşağıdaki gibi olacak.

Kodları ise;

Ve projemizin web sayfalarını da yaptıktan sonra projemiz tamamlamış olmaktadır.

Güzel kodlamalar dilerim.

Kaynak Kodlara Github'tan UlaşBu yazıda anlatılan projenin kaynak kodlarını Github üzerinden indirebilirsiniz.

Önceki Ders: HATEOAS Nedir? HATEOAS Uygulama Örneği Kullanımı
Spring Boot Dersleri
Sonraki Ders: Spring Boot Uygulamalarında Webjars Kullanımı

Leave a Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Burak KUTBAY 2010 - 2019
%d blogcu bunu beğendi: