Java Spring mi öğrenilmeli Spring Boot mu?

Katılım
26 Ocak 2020
Mesajlar
6.332
Makaleler
1
Çözümler
13
Yer
İstanbul
Merhaba. 2. sınıf CENG öğrencisiyim. Java öğretiyor bizim okul ve ben baya üzerinde durdum. Çalışma mantığını ve OOP yöntemlerini öğrendim. Hem staj yaklaşması hemde bir adım ileri atma gereği sonucunda bir framework öğrenmek en iyisi diye düşündüm. Java ile vakit geçirdiğim için onun üzerinde araştırdım. En çok duyduğum isim Spring ve Spring Boot. Anladığım kadarı ile Spring Boot = Spring fakat ekstra config gibi yan işleri otomatik hallediyor.

Reddit gibi yerlerde Spring öğrenmeden Spring Boot bakmanın sorunlara yol açabileceğinden ya da tam anlamamaya sebep olabileceğinden bahsediliyor ama hiçbir fikrim yok. Birkaç sorum olacak.

* Sizce Spring mi Spring Boot mu ilk önce öğrenilmeli?

* Nasıl ve nereden çalışılmalı?

* Başka önerdiğiniz ve işime yarayacak framework varmı?


Teşekkürler şimdiden.
 
Ikisi ayri seyler degiller. Spring boot spring framework icinde hazir modullerin entegre edildigi bir proje.

Spring i modul modul ogrenmen gerekiyor, Web, JPA ve AOP ile baslayabilirsin.

Sonrasinda bunu Reactive ve Security ve Cloud ile genisletebilirsin.

Ancak unutmadan, bir framework'u ogrenmenin en ideal yolu o framework'un hangi probleme cozum sundugunu anlamaktan gecer. Yani spring Web'e neden ihtiyacimiz var, o olmasa ne kaybedecegiz sorusunun cevabini vermeden ogrenemezsin. O sebeple once bodos Servlet ve web ( request ~ response ) akisi ogrenmelisin. Aksi halde sadece annotasyon ezberlemis olursun.

Ben hic web'e dokunmadan CLI ve FTP ile calisan Spring projesinde calistim aylarca. Spring cok genis bir framework ve Java ekosisteminde olup da kullanmasan bile bilmelisin.
 
Sağolun hocam bilgilendirme için. Önerdiğiniz bir kaynak varmı acaba? Bütçem var kitap veya kurs için. Direkt spring icin sormuyorum benim seviyemde ogrenmelisin dediginiz bir konu icin olabilir. JPA dediniz, Servlet dediginiz örneğin.
 

Kendi dokumantasyonu



Benim tavsiyem oncelikli olarak Java EE API'larini ogrenmek. Jakarta guncel hali. Bunlar Spring icinde kullandigimiz bazi annotasyonlarin ve interface'lerin temelini olusturuyor.

Ornegin "@Inject" ya da "@Entity" gibi.

Bunlari implemente eden framework'leri de sonrasinda ogrenirsin. Spring en bilineni ama alternatifleri de var. Ayrica Guice gibi farkli felsefeyle EE implemente eden varyantlar da var. Projene gore kullanirsin.

Eger Web gelistirme yapacaksan once framework kullanmadan Hello World yazmaya calis. Yani class icinde kullanacagin import statement'lari sunlar olacak:

Java:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

Bu sekilde taklalar atarak hello world yazabildigin zaman, Spring Boot ve Spring arasindaki farki; Spring Web'in senin icin neler yaptigini daha iyi anlayacaksin. Kod icinde "DispatcherServlet" gordugun zaman bunun ne oldugunu da daha iyi kavrayacaksin zira daha once kendin de Servlet yazdin.

Kaynak olarak Baeldung tavsiye ederim kod orneklerine goz atmak icin.
API icin JavaDoc'a bakmalisin.
Spring icin de kendi kaynakcasi.

Java EE ve Spring API cok hizli degisir ve cok detaylidir, eski bir kaynaktan ogrenirsen hata yaparsin ona dikkat etmelisin. Zaten bir sure sonra mantigini anlarsin. Her seyin default implementasyonu ve default implementasyonu konfigure etmen icin extend etmen gereken bir interface'i olur. yaml ya da prop dosyalari ile de parametrik hale getirirsin. Ihtiyacin olan Spring modulunu de Gradle ya da Maven ile entegre edersin. Kabaca bu sekilde.
 
Cok sagolun hocam dediklerinize bakacağım. Gradle ve Maven dışında her kelime yabanci ama olsun . Iyi akşamlar dilerim.
 

Çok faydalı bir yazı olmuş sağ olun.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…