SPRING-BOOT-STARTER,SPRING-BOOT-STARTER-PARENT VE SPRING-BOOT-DEV-TOOLS
SPRING-BOOT-STARTER
Bu makalede spring boot starters’ı ele alacağız.
Problem: Bildiğimiz gibi bir spring uygulaması oluşturmak zor ve aslında sıkça sorulan sorulardan birisi. Aslında temel sorular şunlar:
Hangi maven bağımlılıklarını kullanmam gerekiyor?
İhtiyacım olan minimum bağımlılıklar nelerdir?
Bir pom kullanırsam tam bağımlılıklar nelerdir?
Çünkü nasıl başlayacağımızı bulmak gerçekten zor. Bu nedenle maven bağımlılıklarının basit bir listesi olsaydı harika olurdu. Çünkü bir geliştirici olarak, her bir bağımlılığı aramak ve o bağımlılığın içinde neler olduğunu görmeye çalışmak için zaman kaybetmek istemiyorum.
Çözüm: Spring boot starters: Spring boot projesinde kullanılabilecek önceden yapılandırılmış bağımlılık paketlerinin bir koleksiyonudur diyebiliriz. Bu paketler spring boot için yaygın olarak kullanılan web servisleri, veritabanı erişimi, güvenlik ve test amaçları gibi özellikler sunar.
Spring development ekibi tarafından test edilmiş ve doğrulanmış, bir arada gruplandırılmış bağımlılıklar koleksiyonudur. Bu duruma Spring MVC ile bir örnek üzerinden gidelim
Bir spring mvc uygulaması oluştururken normalde aşağıdaki gibi spring mvc gibi eklemeler yapmanız gerekmektedir.
Bu bağımlılıkları eklemek için tek tek yapmanız gereken pek çok şey var aslında. İşte web için spring boot starters’ı kullanarak bir çözüm:
Daha sonra bu maven bağımlılığını maven pom dosyanıza eklemeniz yeterlidir. İşte bu spring boot starters. Uyumlu sürümlere sahip maven bağımlılıklarının bir koleksiyonudur.
Spring Initializr’da buna erişmek için web bağımlılığını seçmeniz yeterlidir ve pom xml dosyanızda spring boot starter web’i otomatik olarak alırsınız.
SPRING-BOOT-STARTER-PARENT
Spring boot tabanlı bir uygulama geliştirilen kullanabileceğiniz bir proje şablonudur. Genellikle maven veya Gradle gibi yapılandırma araçları ile kullanılır.
Burada <version>3.0.5</version> belirttiğimiz sürüm aslında diğer kullanacağımız bağımlılıklar için sürümü miras alır. Böylece tek tek sürümleri listelemeye gerek kalmaz. Bu durumun avantajı burada kullandığımız tüm bağımlılıkların uyumlu bir şekilde çalışmasını sağlamasıdır.
-Spring boot starter parent, kullanılan diğer pluginlerin sürüm numaralarını yönetir. Buda geliştiricilerin bu sürüm numaralarını tek tek belirlemeleri gerekmediği anlamına gelir.
- Java sürümü, UTF kodlaması ve benzeri için varsayılan maven yapılandırmasını alır.
- Starter parent spring boot eklentisinin varsayılan yapılandırmasını yapmak için pom içerisinde:
- Spring boot maven eklentisine başvurmamız yeterlidir ve eklenti kullanıma hazırdır.
- Starter-parent faydaları:
- Java sürümü, UTF kodlaması ve benzeri için varsayılan maven yapılandırmasını alır.
- Bağımlılık yönetimi (Dependency management) konusunda yardımcı olur. Böylece yalnızca miras alınan sürümü kullanmış oluruz.
SPRING-BOOT-DEV-TOOLS
Problem: Spring boot uygulamalarını çalıştırırken, kaynak kodunuzda değişiklik yaparsanız, uygulamanızı manuel olarak yeniden başlatmanız gerekir ve bu geliştirici için iyi değildir.
Çözüm: Spring-boot-dev-tools sayesinde kodunuz güncellendiğinde uygulamanızı otomatik olarak yeniden başlatmanıza olanak tanır. Bunun için maven pom dosyanıza bir küçük eklenti yapmanız yeterlidir.
Burada dikkat etmemiz gereken bir konu var. IDE’lerde bu işlevsellik direkt çalışır ancak intellij IDE kullanan arkadaşların bazı ek yapılandırma yapmaya ihtiyaçları var. Intelliij, spring boot dev tools’u desteklemiyor. Bunun için:
Select->preferences->Build,execution,deployment->compiler-> checkbox:Build project
automatically kutusunu işaretlemektir. Son bir ayar daha yapmamız gerekiyor:
Select -> preferences->Advanced settings ardından checkbox: Allow auto-make to…
Şimdi bu bağımlılığı birlikte test edelim. Bunun için öncelikle çalışan uygulamamızı durduralım.
Sonrasında REST API ‘mizi veya REST Denetleyicimizi düzenleyelim.
Mevcutta benim kaynak kodum bu şekilde. Ve bunun çıktısı:
Not: Burada yapmak istediğim şey kaynak kodumu düzenliyorum ve spring boot’un yeni sürümü gerçekten otomatik olarak yeniden yükleyeceğini test etmek. Bunun için kodumuza yeni bir ekleme yapıyorum.
Burada workout endpoint’ini ekledim. Kodu yazdıktan sonra kaydet işlemi yaptığımda alt taraftaki konsolda otomatik olarak bu güncellemeyi alıyor. Yeni ekran çıktısı:
Özetlemek gerekirse:
1)Intellij kullanıyorsanız konfigürasyon ayarlarını kur.
2) pom.xml dosyasını düzenle.
3) Ardından yeni kodunuzu yazın.
4) Son olarak uygulamanızın otomatik olarak yeniden yüklendiğini doğrulayabilirsiniz.
Bir sonraki yazımda Spring-boot-actuator ile devam edeceğim. Keyifli okumalar…