Springboot ile CRUD Projesi Oluşturma
Springboot da proje oluşturmak spring boot initializer ile artık daha kolay bir hale geldi. Bu yazıda oluşturacağımız proje standart bir Create, Read, Update ve Delete işlemleri yapacağından projede Spring Data , PostgreSQL, Spring Mvc Web bağımlılıklarını kullanacağız.
Örnek ekran görüntüsü :
Oluşturduğumuz projemizi indirmiş olduğumuz path den kullandığınız her hangi bir ide(integrated development environment) ile açabilirsiniz. Ben Intellij ide ile geliştirmeleri yapacağım.
Intellij ide de açılan ekranda Import Project’e tıklıyoruz.
Paket yönetim için Gradle’ı seçiyoruz ve Next’e tıklıyoruz.
Projenin konfigürasyon ayarlarını yapıyoruz ve Finish’e tıklıyoruz.
Aşağıdaki resimde projenin yapısını görebilirsiniz.
Oluşturduğumuz projemizde yazının başında belirttiğimiz gibi Create , Read , Update ve Delete işlemlerini yapacağımızdan projemizin ihtiyacı olan bazı konfigürasyonları yapmamız gerekmektedir. Bunlardan en önceliği Database bağlantısıdır. Database bağlantısı için projenin src->main->resources uzantısı altında bulunan application.properties dosyasını aşağıdaki örnekteki gibi ayarlıyoruz.
İsterseniz application.properties dosyasının adını application.yml olarak değiştirip yml formatta da ayarları yapabilirsiniz.
Ben default gelen ayarlara devam edeceğim için application.properties dosyasını kullanacağım.
Properties dosyasına yapmış olduğumuz tanımlamaları projemizde DatabaseConfiguration.java adında bir konfigürasyon sınıfı içerisinde projemize uygulayacağız. Bunun için src -> main -> java -> com -> arif ->crud uzantısının altına configuration diye bir klasör oluşturup aşağıdaki DatabaseConfiguration.java sınıfını oraya ekliyoruz.
Database ayarlarını yaptıktan sonra artık localimiz de PostgreSQL’e bağlanmamızda bir engel kalmamıştır. Eğer localiniz de indirilmiş bir PostgreSQL yok ise ve local bilgisayarınız da docker yüklü ise aşağıdaki docker-compose dosyasını çalıştırabilir ve hızlıca devam edebilirsiniz.
Docker compose dosyasını herhangi bir yere indirip aşağıdaki komutları çalıştırmanız yeterli olacaktır. Ben Downloads’a indirip ordan çalıştırdım.
Yukarıdaki tüm ayarlamaları yaptıktan sonra projemizde bulunan CrudApplication.java sınıfında bulunan main methodunu çalıştırıyoruz. Projemiz çalışır hale geldikten sonra proje yapısını oluşturuyoruz. Aşağıdaki resimde örnek yapıyı görebilirsiniz.
Project StructureProje yapısında ;
-
controllers = Uygulamanın en dış katmanlarının bulunduğu klasör.
-
dtos = Uygulamaya gelen istek yapılarının bulunduğu klasör.
-
models = Entity yani database sınıflarının bulunduğu klasör.
-
repositories = Repository katmanındaki sınıfların bulunduğu klasör.
-
services = Service katmanındaki sınıfların bulunduğu klasör.
Yukarıdaki yapıda controllers klasörünün altında DeveloperController.java sınıfı içerisinde tüm developerların listelenmesi (Read), eklenmesi (Create), silinmesi (Delete) ve güncellenmesi (Update) için gerekli olan methodları görebilirsiniz.
Spring framework de mvc yapısını oluşturmak için aşağıdaki anotasyonlar kullanılır.
- @Controller
- @Service
- @Repository
En dış katman olan Controller sınıfları Service katmanındaki sınıflar ile etkileşime geçerler. Etkileşime geçmelerini sağlayan ise Dependency Injection dır. Spring framework de bunu @Autowired anotasyonu ile yapabilirsiniz.
Service katmanında ise Controller sınıfı için gerekli olan methodlar bulunur. Aşağıdaki resimde methodları inceleyebilirsiniz.
Service katmanıda database işlemlerine direk müdahale eden Repository katmanına Dependency Injection yaparak erişim sağlar.
Katmanlar arasındaki etkileşim doğru yapılmaz ise hata durumları oluşur.
Oluşturmuş olduğumuz projemize dışardan nasıl erişilebileceğini Swagger ile döküman haline getirebilir yada Postman collection larını paylaşabiliriz. Bu projede src -> main -> resources -> static klasörünün altında Developer. postman_collection adındaki dosyayı Postman ' e import ederek test edebilirsiniz.
Sonuç olarak, bu yazıda sıfırdan Springboot projesi nasıl oluşturulur , hangi ayarlar yapılmalıdır ve katmanlar nasıl olmalıdırın cevaplarını vermiş oluyoruz. Projenin tamamına burdan erişebilirsiniz.
Kolay Gelsin.. 🤞