Ing artikel iki, aku ora bakal ngandhani sampeyan carane nggawe proyek Spring sing bisa digunakake ing 5 menit nggunakake kodeku. Aku mung arep nulis dhasar - bab sing bisa sampeyan ora ngerti lan isih nggawe proyek. Nanging ing artikel iki, sampeyan isih ora ngerti apa sing kedadeyan lan, sing luwih penting, kenapa.
Nalika sampeyan bisa ndeleng, Spring punika modular. Iki ngidini kita nyambungake mung modul sing dibutuhake kanggo aplikasi lan ora nyambungake modul sing jelas ora bakal digunakake. Sa adoh aku ngerti, iki pendekatan sing supaya Spring outperform sawijining banjur pesaing (EJB) lan njupuk timbal. Aplikasi sing nggunakake EJB nyeret akeh dependensi ing mburine, lan asile dadi alon lan alon. Gambar nuduhake yen Spring Framework kasusun saka sawetara modul:
Apa Spring Framework?
Spring Framework, utawa mung Spring, minangka salah sawijining kerangka kerja sing paling populer kanggo nggawe aplikasi web ing Jawa. A framework kaya perpustakaan (mbok menawa sampeyan luwih menowo istilah iki), nanging ana soko kanggo nimbang. Secara kasar, nalika sampeyan nggunakake perpustakaan, sampeyan mung nggawe conto kelas sing ana, nelpon metode sing sampeyan butuhake, lan kanthi mangkono entuk asil sing dibutuhake. Ing tembung liyane, iki minangka pendekatan sing luwih penting: ing program sampeyan, sampeyan kanthi jelas nuduhake wektu tartamtu nalika sampeyan kudu nggawe obyek, nalika nelpon cara tartamtu, lan liya-liyane. Sampeyan mung nulis sawetara kelas dhewe lan nulis sawetara logika ing wong-wong mau, nanging banjur framework dhewe nggawe conto saka kelas lan nelpon cara sing. Kelas sampeyan biasane ngleksanakake sawetara antarmuka saka framework utawa marisi sawetara kelas, saéngga nyedhiyakake sawetara fungsi sing wis ditulis kanggo sampeyan. Nanging iki ora mesthi. Contone, Spring nyoba okehe kanggo supaya kopling nyenyet kuwi (ngendi kelas langsung gumantung ing kelas / antarmuka ing framework). Iki nggunakake anotasi kanggo entuk iki. Kita bakal bali menyang iki mengko. Nanging iku penting kanggo ngerti sing Spring mung koleksi kelas lan antarmuka sing kasedhiya kanggo sampeyan nggunakake :) Aku uga pengin Wigati langsung sing Spring bisa digunakake ora mung kanggo aplikasi web, nanging uga kanggo program console paling umum. sing akrab banget karo kita kabeh. Lan kita malah bakal nulis salah siji saka dina iki. saéngga nyedhiyakake sawetara fungsi sing wis ditulis kanggo sampeyan. Nanging iki ora mesthi. Contone, Spring nyoba okehe kanggo supaya kopling nyenyet kuwi (ngendi kelas langsung gumantung ing kelas / antarmuka ing framework). Iki nggunakake anotasi kanggo entuk iki. Kita bakal bali menyang iki mengko. Nanging iku penting kanggo ngerti sing Spring mung koleksi kelas lan antarmuka sing kasedhiya kanggo sampeyan nggunakake :) Aku uga pengin Wigati langsung sing Spring bisa digunakake ora mung kanggo aplikasi web, nanging uga kanggo program console paling umum. sing akrab banget karo kita kabeh. Lan kita malah bakal nulis salah siji saka dina iki. saéngga nyedhiyakake sawetara fungsi sing wis ditulis kanggo sampeyan. Nanging iki ora mesthi. Contone, Spring nyoba okehe kanggo supaya kopling nyenyet kuwi (ngendi kelas langsung gumantung ing kelas / antarmuka ing framework). Iki nggunakake anotasi kanggo entuk iki. Kita bakal bali menyang iki mengko. Nanging iku penting kanggo ngerti sing Spring mung koleksi kelas lan antarmuka sing kasedhiya kanggo sampeyan nggunakake :) Aku uga pengin Wigati langsung sing Spring bisa digunakake ora mung kanggo aplikasi web, nanging uga kanggo program console paling umum. sing akrab banget karo kita kabeh. Lan kita malah bakal nulis salah siji saka dina iki. Spring nyoba okehe kanggo supaya kopling nyenyet kuwi (ngendi kelas langsung gumantung ing kelas / antarmuka ing framework). Iki nggunakake anotasi kanggo entuk iki. Kita bakal bali menyang iki mengko. Nanging iku penting kanggo ngerti sing Spring mung koleksi kelas lan antarmuka sing kasedhiya kanggo sampeyan nggunakake :) Aku uga pengin Wigati langsung sing Spring bisa digunakake ora mung kanggo aplikasi web, nanging uga kanggo program console paling umum. sing akrab banget karo kita kabeh. Lan kita malah bakal nulis salah siji saka dina iki. Spring nyoba okehe kanggo supaya kopling nyenyet kuwi (ngendi kelas langsung gumantung ing kelas / antarmuka ing framework). Iki nggunakake anotasi kanggo entuk iki. Kita bakal bali menyang iki mengko. Nanging iku penting kanggo ngerti sing Spring mung koleksi kelas lan antarmuka sing kasedhiya kanggo sampeyan nggunakake :) Aku uga pengin Wigati langsung sing Spring bisa digunakake ora mung kanggo aplikasi web, nanging uga kanggo program console paling umum. sing akrab banget karo kita kabeh. Lan kita malah bakal nulis salah siji saka dina iki. ) Aku uga pengin Wigati langsung sing Spring bisa digunakake ora mung kanggo aplikasi web, nanging uga kanggo program console paling umum sing dadi menowo kanggo kabeh kita. Lan kita malah bakal nulis salah siji saka dina iki. ) Aku uga pengin Wigati langsung sing Spring bisa digunakake ora mung kanggo aplikasi web, nanging uga kanggo program console paling umum sing dadi menowo kanggo kabeh kita. Lan kita malah bakal nulis salah siji saka dina iki.Struktur
Nanging Spring ora mung siji framework tartamtu. Nanging, iki minangka jeneng umum sing digunakake kanggo nyebut sawetara kerangka cilik, sing saben-saben nindakake pakaryan dhewe.https://docs.spring.io/spring/docs/4.3.26.RELEASE/spring-framework-reference/htmlsingle/
Gambar 2.1. Ringkesan Spring Framework
- Akses Data
- Web
- inti
- lan liyane
Napa Java duwe Spring Framework?
Kajaba iku, modis, lunyu lan seger, saiki aku bisa ujar manawa sampeyan entuk katrampilan cilik nggunakake Spring, sampeyan bakal ngerti kepiye kabeh jinis pakaryan sing ora ana maneh. apa, lan carane akeh karya Spring njupuk marang dhewe. Sampeyan bisa nulis sawetara rolas baris saka setelan konfigurasi lan nulis saperangan saka kelas, lan sampeyan mungkasi munggah karo proyek apa. Nanging sanalika sampeyan miwiti kepingin weruh carane akeh barang ing hood, carane akeh karya wis rampung, lan carane akeh kode sampeyan kudu nulis yen sampeyan arep kanggo ngleksanakake project padha adhedhasar servlets kosong utawa sockets lan Jawa murni, rambutmu bakal ngadeg ing pungkasan :) Spring malah diterangake minangka jenis sihir. Sampeyan ngalami iki nalika sampeyan ndeleng kabeh bisa digunakake, nanging sampeyan uga duwe idea atos carane lan carane akeh karya wis kedados konco sing pemandangan - dadi misale jek sing ana tenan sawetara jenis Piandel ing tumindak :) Iku luwih gampang kanggo nyebataken Piandel saka nyoba kanggo nerangake carane iku kabeh interconnected. :) Argumentasi kapindho sing nyinaoni Spring yaiku kira-kira 90% lowongan kerja kanggo pangembang junior (adhedhasar pengamatan pribadi) mbutuhake kawruh utawa paling ora gagasan umum babagan apa Spring.Data
, Web MVC
, lan Security
modul nawakake pangembang sing canggih :) Nanging dina iki mung babagan dhasar.
DI/IoC
Yen sampeyan wis nate nyoba maca babagan Spring, mula sing pertama ditemokake yaiku akronim kasebut: DI/IoC. Saiki aku menehi saran supaya sampeyan ngaso saka artikel iki lan maca artikel DZone iki ! IoC singkatan saka inversi kontrol. Aku wis kasebut ing liwat nalika aku wrote sing nggunakake perpustakaan melu sampeyan dhewe nuduhake ing kode kang cara kanggo nelpon ing obyek, nanging sing nggunakake framework umume tegese framework bakal nelpon kode ing wektu tengen. Ing tembung liya, ing kasus sing terakhir iki, sampeyan ora lagi ngatur proses nglakokake kode/program — kerangka nindakake iki kanggo sampeyan. Sampeyan ngliwati kontrol menyang framework (inversi kontrol). DI singkatan saka injeksi dependensi. Kanthi injeksi dependensi, sampeyan ora nggawe obyek kucing ing metode utama lan banjur pindhah menyang metode sampeyan. Nanging, Spring Framework nggawe kanggo sampeyan. Sampeyan mung ngomong kaya "Aku pengin njaluk kucing ing kene" lan kerangka kasebut menehi sampeyan kanthi cara sampeyan. Kita bakal weruh singkatan iki ing artikel sabanjure.Kacang buncis lan konteks
Salah sawijining konsep kunci ing musim semi yaiku kacang. Nyatane, iki mung obyek saka sawetara kelas. Upaminipun kita duwe program sing mbutuhake 3 obyek: kucing, asu, lan manuk beo. Lan kita duwe akeh kelas kanthi akeh metode. Kadhangkala kita butuh kucing kanggo metode, kadhangkala kita butuh asu kanggo cara sing beda, lan kadhangkala cara kita butuh kucing lan manuk beo (contone, cara kanggo menehi panganan kucing, ha-ha). Kanggo cara liyane, kabeh telung obyek dibutuhake. Ya, pisanan kita bisa nggawe telung obyek iki ing cara utama, lan banjur pass menyang kelas kita, lan banjur ing kelas iki pass menyang cara sing cocog... Lan ing saindhenging kabeh program. Nanging yen kita uga ngira yen sok-sok pengin ngganti dhaptar parameter input kanggo metode kita (contone, kita mutusake kanggo nulis maneh utawa nambah fungsi anyar), banjur kita kudu nggawe sawetara owah-owahan ing kode kasebut. Lan saiki mbayangno yen kita ora duwe 3, nanging 300 obyek kasebut. Salah sawijining alternatif yaiku ngumpulake kabeh obyek ing siji dhaptar (List<Object>
), pass menyang saben metode, banjur entuk obyek sing dibutuhake nalika ana ing metode kasebut. Nanging nalika program mlaku, apa yen sawetara obyek ditambahake menyang dhaptar iki, utawa luwih elek, apa yen ana sing wis dibusak? Iki duweni potensi kanggo ngilangi saben cara sing nggunakake indeks kanggo njupuk obyek saka dhaptar. Kanggo ngindhari masalah iki, kita mutusake kanggo nyimpen obyek ora ing dhaptar, nanging ing peta, ing ngendi tombol kasebut yaiku jeneng obyek lan nilai obyek kasebut dhewe. Iki ngidini kita njupuk obyek sing kita butuhake mung kanthi nggunakake jenenge, contone get("parrot"), lan kanggo nanggepi kita entuk obyek parrot. Utawa kunci bisa dadi kelas obyek, lan nilai kasebut bisa dadi obyek kasebut. Ing kasus iki, tinimbang nemtokake jeneng obyek, nanging mung bisa tartamtu kelas obyek kita kudu. Sing uga trep. Utawa kita bisa uga nulis sawetara jinis pambungkus kanggo peta, ing ngendi sawetara metode entuk obyek kanthi jeneng, lan metode liyane entuk obyek miturut kelase. Sing wis tekan kene diarani ankonteks aplikasi ing Spring Framework. Konteks yaiku kumpulan kacang (obyek). Kita ngakses konteks kanggo entuk kacang (obyek) sing kita butuhake kanthi jeneng, jinis, utawa kanthi cara liya. Kajaba iku, kita bisa njaluk Spring dhewe kanggo golek ing konteks dhewe kanggo buncis kita perlu lan pass menyang cara kita. Contone, umpamane kita duwe metode kaya iki:
public void doSomething(Cat cat) {
...
}
Nalika Spring diarani metode iki, njupuk obyek kucing kita saka konteks lan ngliwati metode kasebut. Nanging saiki kita wis mutusake manawa, saliyane kucing, metode kita uga butuh manuk beo. Kanthi Spring, ora ana sing luwih gampang! Kita mung nulis:
public void doSomething(Cat cat, Parrot parrot) {
...
}
Saiki nalika Spring nelpon cara kita, iku mangerténi perlu kanggo pass kucing lan manuk beo, supaya dadi menyang konteks, njaluk loro obyek iki, lan pass menyang cara kita. Kanthi nransfer kendali kontrol menyang Spring, kita uga nransfer tanggung jawab kanggo nggawe obyek lan ngirim menyang metode kita, sing bakal diarani Spring. Iki dadi pitakonan: kepiye Spring ngerti obyek (kacang) sing bakal digawe?
Cara kanggo ngatur aplikasi
Ana telung cara utama kanggo ngatur aplikasi , yaiku, cara kanggo ngandhani Spring persis obyek sing dibutuhake:- file konfigurasi XML
- konfigurasi basis Jawa
- konfigurasi otomatis
- cara karo prioritas ndhuwur, kang kudu disenengi, iku konfigurasi otomatis
- yen konfigurasi otomatis ora bisa digunakake kanggo ngatur kabeh kacang buncis kanthi bener, gunakake konfigurasi basis Java (sing kalebu nggawe obyek nggunakake kode Jawa)
- lan metode prioritas paling murah yaiku cara lawas - nggunakake file konfigurasi XML.
GO TO FULL VERSION