Jhipster, modern web uygulamaları ve mikro servis mimarilerini hızla oluşturmak, geliştirmek ve dağıtmak için bir geliştirme platformudur. Kullanabilmek için öncelikle Java, Git ve NodeJS’in bilgisayarınızda kurulu olduğunu kontrol edin.
NPM içindeki bir package tarafından yönetilir. Bundan dolayı Jhipster’ın kurulu olduğundan emin olmak için jhipster –version ile öncelikle projenin mevcut bulunduğu konumdan, command line üzerinde bu komutla deneme yapmanız gerekir. Eğer yüklü değil veya bulunamıyorsa:
npm i generator-jhipster
Bu komut ile yüklemeniz gerekir. Yükleme tamamlandıktan sonra Jhipster üzerinde işlemler yapmaya başlayabilirsiniz.
Sonrasında oluşturacağınız klasörün ilgili pathine command line üzerinden erişerek Jhipster’ı çalıştırabilirsiniz. Jhipster ile Javada maven ve gradle tabanlı projeler oluşturup aşağıdaki resimdeki özellikleri seçerek devam edebilirsiniz. Authentication’dan, database tipine kadar pek çok özelliği belirleyip projede auto generated connection, config bilgileri yaratabilirsiniz.
Aşina olunmayan bir kaç kavramdan söz etmek gerekirse Jhipster Spring WebFlux kullanarak reactive programlama yapabilmeyi sağlayan bir seçenek sağlar. Spring WebFluxla beraber annotation based reactive componentler yaratıp Restful design’da Mono ve Flux kullanarak implementasyonlar geliştirme sağlar. Aynı zamanda routing de fonksiyonel hala geldiği için kullanışlı bi yapı sağlar. Bir diğer kavramsa Jhipster Registry, aklınızda canlanabilmesi adına server monitoring olarak düşünülebilir. Uygulamalar için discovery server sağlar, Spring Cloud Configuration’ın kontrol edilebilmesinde yardımcı olur. Monitoring içinde admin server yaratır diye söyleyebiliriz.
Proje yaratıldıktan sonra auto generated classların genel yapısına bakacak olursak dockerized profilleri içinde barındıran bir gradle projenin yaratıldığını ve configlerin Jhipster tarafından yaratıldığını görebiliriz.
Jhipster entityler üzerinde değişiklik yapmaktan yeni entityler yaratmanıza kadar farklı işlevlere sahiptir. Yine command prompt üstünden istediğiniz entity için Jhipster entity entityName komutu ile işlemlerinize devam edebilirsiniz.
Entity’lere ait tüm bilgiler .jhipster klasörü altındaki json dosyaları içinde yer almaktadır.
Jhipster üzerinden sıfırdan bir entity yaratıp deneme yapacak olursak:
AppUser entitysi yaratılıp içine aşağıdaki sorular eşliğinde 4 farklı field eklenmiştir.
Class fieldları tanımlandıktan sonra classa ait detaylandırma için, service classları, DTO object kullanımı, pagination&sorting gibi birden fazla özelliği verip detaylandırabiliriz. Bu özelliklere bağlı olarak entity classları yaratılır.
Jhipster mevcut entityler üzerinde değişiklik yapmaya izin verirken birden fazla entity yaratıp aralarında relation kurmasına da olanak sağlar.
Kodda yaratılmış auto-generated classlara bakacak olursak. .jhipster klasörü mevcut entitylerin meta datalarını kapsayacak şekilde konumlanmıştır. İçindeki json datası şu şekildedir.
{ "changelogDate": "20220608081224", "dto": "mapstruct", "fields": [ { "fieldName": "name", "fieldType": "String" }, { "fieldName": "surname", "fieldType": "String" }, { "fieldName": "phoneNumber", "fieldType": "String" }, { "fieldName": "age", "fieldType": "Long" } ], "jpaMetamodelFiltering": false, "name": "AppUser", "pagination": "no", "readOnly": false, "relationships": [], "service": "serviceImpl" }
Aynı şekilde classlara baktığımızda entity özelinde DTO’ları da kapsayacak şekilde kodların oluştuğunu görebiliriz.
Kırmızı ile işaretlenenler jhipster tarafından oluşturulmuş yeni dosyalardır.