JavaRush /Java Blog /Random-TK /Bahar ýaltalar üçin. Kod bilen esaslar, esasy düşünjeler ...

Bahar ýaltalar üçin. Kod bilen esaslar, esasy düşünjeler we mysallar. 1-nji bölüm

Toparda çap edildi
Köp adamlar web taslamasy üçin şablon döretmek we servletleri ulanyp ýönekeý web hyzmaty döretmek baradaky makalalarymy okandan soň , Bahar hakda haçan ýazjakdygym hakda gyzyklandylar. Men islemedim, kitap okamagy maslahat berdim (we henizem bir kitap internetde 10, hatda 100 makaladan has gowudygyny aýdýaryn). Nowöne indi şol bir zady dürli adamlara düşündirmek bilen, bir gezek oturyp, makala ýazanymdan soň has köp wagt sarp etmek kararyna geldim. Şonuň üçin baglanyşyk üçin ýazýaryn)). Bahar ýaltalar üçin.  Kod bilen esaslar, esasy düşünjeler we mysallar.  1-nji bölümBu makalada, mysalymdan 5 minutda Baharda iş taslamasyny nädip ýasamalydygyny ýazjak däl. Diňe esasy zatlar hakda ýazaryn, taslamany başlamagyň elbetde mümkindigini bilmän, ýöne ol ýerde nämeleriň bolup geçýändigi we has möhümi näme üçin düşnükli bolmaz.

Bahar çarçuwasy näme?

Bahar çarçuwasy , ýa-da ýönekeý bahar , Java-da web programmalaryny döretmek üçin iň meşhur çarçuwalardan biridir. Çarçuwa kitaphana meňzeş bir zat (belki bu termin size has tanyşdyr), ýöne bir nokat bar. Takyk aýdanyňda, kitaphanany ulanyp, diňe içindäki synplaryň obýektlerini döredýärsiň, zerur usullara jaň edýärsiň we şeýlelik bilen zerur netijäni alýarsyň. .Agny, has hökmany çemeleşme bar: haýsy obýekti döretmelidigiňizi, haýsy pursatda belli bir usuly çagyrmalydygyňyzy we ş.m. programmaňyzda anyk görkezýärsiňiz. Çarçuwalar bilen zatlar birneme üýtgeşik. Diňe öz synplaryňyzyň käbirini ýazýarsyňyz, logikanyň bir bölegini şol ýerde ýazýarsyňyz we çarçuwanyň özi synplaryňyzyň obýektlerini döredýär we size jaň edýär. Köplenç, synplaryňyz çarçuwadan käbir interfeýsleri amala aşyrýarlar ýa-da ondan käbir synplary miras alýarlar, şeýlelik bilen eýýäm ýazylan käbir funksiýalary alýarlar. Emma beýle bolmaly däl. Mysal üçin, bahar paslynda mümkin boldugyça şeýle berk birikdirmeden daşlaşmaga synanyşýarlar (sapaklaryňyz bu çarçuwadan käbir synplara / interfeýslere gönüden-göni bagly bolanda) we bu maksat bilen düşündirişleri ulanýarlar. Bu meselä soňrak dolanarys. Springöne Baharyň diňe siziň üçin ýazylan käbir synplaryň we interfeýsleriň toplumydygyna düşünmek möhümdir :) Baharyň diňe web programmalary üçin däl, eýsem iň köp ýaýran konsol üçin hem ulanylyp bilinjekdigini derrew belläsim gelýär. hemmämiz üçin gaty tanyş programmalar Bu gün bolsa hatda şuňa meňzeş bir zat ýazarys.

Gurluşy

Springöne bahar belli bir çarçuwa däl. Bu, hersi haýsydyr bir dürli iş edýän birnäçe kiçi çarçuwanyň umumy ady.
Bahar ýaltalar üçin.  Kod bilen esaslar, esasy düşünjeler we mysallar.  1-nji bölüm
Görşüňiz ýaly, baharyň modully gurluşy bar. Bu, diňe amalymyz üçin zerur bolan modullary birleşdirmäge we ulanmajakdygymyzy aç-açan birikdirmäge mümkinçilik berýär. Bilşime görä, hut şu çemeleşme, Baharyň şol wagtky bäsdeşinden (EJB) öňe geçip, öňdeligi eýelemegine kömek etdi. EJB ulanýan programmalar özleri bilen köp garaşlylygy çekdi we umuman haýal we ýapyk bolup çykdy. Surat, bahar çarçuwasynyň birnäçe moduldan ybaratdygyny görkezýär:
  • maglumatlara giriş;
  • web;
  • ýadro;
  • we başgalar.
Bu gün esasy modulyň käbir düşünjeleri bilen tanşarys, mysal üçin: noýba, kontekst we beýlekiler. Siziň çak edişiňiz ýaly, maglumatlara giriş modulynda maglumatlar (esasanam maglumat bazalary), web - torda işlemek üçin gurallar bar (soňrak ara alnyp maslahatlaşyljak web programmalaryny döretmek üçin). Mundan başga-da, “Bahar” infrastrukturasy diýlip hem atlandyrylýanlar bar: resmi taýdan çarçuwanyň içine girmeýän, ýöne “Bahar” proýektiňize bökdençsiz birleşdirilen başga-da köp taslamalar (mysal üçin, ulanyjylaryň ygtyýarnamasy bilen işlemek üçin şol bir bahar howpsuzlygy ) sahypa, bir günem duýarys diýip umyt edýärin).

Näme üçin Java-da bahar?

Dogrusy, moda, moda we ýaşlykdan başga-da, birazajyk özleşdiren badyňyza, indi näçeräk üýtgeşik iş etmelidigiňize we Baharyň näçeräkdigine düşünip bilersiňiz. alýar. Birnäçe setir sazlap bilersiňiz, iki synp ýazyp bilersiňiz - we iş taslamasyny alarsyňyz. “Öne“ kapotyň aşagynda ”näçeräk zat, näçe iş edilýändigi we ýalaňaç serwetlerde ýa-da rozetkalarda we arassa Java-da şol bir taslamany eden bolsaňyz, näçe kod ýazylmalydygy hakda pikirlenip başlanyňyzdan soň. - saçyňyzyň üstünde dur :) Baharyň "jadysy" ýaly bir sözlem bar. Bu, hemme zadyň işleýändigini göreniňde, ýöne hemme zadyň işlemegi üçin nämäniň bolmalydygyny we hemmesiniň şol ýerde nähili işleýändigini takmynan çaklaýarsyň - bularyň hemmesi hakykatdanam haýsydyr bir jady sebäpli bolup geçýär öýdýän)) Has aňsat hemmesiniň ol ýerde nähili baglanyşandygyny düşündirmäge synanyşmakdan has jadyly diýiň. ýylgyr data_ web-mvc_ security_ diňe esaslar.

DI / IoC

Baharda bir zat okamaga synanyşan bolsaňyz, ilki bilen bu hatlar: DI / IoC bolmagy mümkin . Indi bu makaladan dynç alyp, Habre hakda bu makalany okamagyňyzy maslahat berýärin ! IoC (Dolandyryşyň tersligi) - dolandyryşyň tersligi. Kitaphanany ulananyňyzda haýsy obýektiň haýsy usulyna jaň etmelidigini koduňyzda ýazýandygyňyzy, çarçuwalar bolsa köplenç çarçuwanyň sag tarapda ýazan koduňyza jaň etjekdigini ýazanymda geçipdim. pursat. .Agny, bu ýerde indi kod / programmany ýerine ýetirmek prosesine gözegçilik etmeýärsiňiz, ýöne çarçuwany siziň üçin edýär. Dolandyryşy oňa geçirdiň (dolandyryşyň tersligi). DI baglylyk öwrülişigi (garaşlylyk inwersiýasy, ýagny bir synpyň gönüden-göni bagly bolan modullaryňyzyň / synplaryňyzyň arasynda gaty baglanyşyk gurmazlyk synanyşygy) ýa-da baglylyk sanjymy (garaşlylyk sanjymy, bu pişik obýektleri bolmadyk mahaly) düşünilýär Esasan siz tarapyndan döredilen, soň bolsa usullaryňyza geçirýärsiňiz, Bahar bolsa olary siziň üçin döredýär, siz bolsa oňa "Men bu ýerde pişik alasym gelýär" ýaly bir zat aýdýarsyňyz we ol size usulyňyzda berýär). Geljekki makalalarda ikinjisine köplenç duş geleris.

Fasulye we kontekst

Springaz paslynda esasy düşünjeleriň biri noýba . Aslynda, bu diňe käbir synplaryň obýekti . Programmamyz üçin 3 zady ulanmaly diýeliň: pişik, it we towuk. Bizde bir topar usul bilen bir topar synp bar, bu ýerde käwagt bir usul üçin pişik, başga bir usul üçin it gerek, käwagt bolsa pişik we towuk gerek bolan usullarymyz bolar (mysal üçin bir usul pişigi iýmitlendirmek üçin hehe) we käbir usullarda üç zadyň hemmesi zerur bolar. Hawa, ilki bilen bu üç obýekti döredip bileris, soň bolsa synplarymyza, synplaryň içinden zerur usullara geçirip bileris ... we ş.m. programmanyň dowamynda. Şeýle hem, usullarymyz üçin kabul edilen parametrleriň sanawyny wagtal-wagtal üýtgetmek isleýändigimizi göz öňüne getirýän bolsak (bir zady täzeden ýazmak ýa-da funksiýa goşmak kararyna geldik) - zerur bolsa koda gaty köp üýtgetmeler girizmeli bolarys. bir zady üýtget. Indi 3 sany däl-de, 300 sany obýektiň bardygyny göz öňüne getirsek näme etmeli? Başga bir alternatiw, şunuň ýaly obýektlerimiziň hemmesini obýektleriň umumy sanawyna ( Sanaw <Object> ) ýygnamak we ony ähli usullara geçirmek, usullaryň içinden bize gerek bolan bu ýa-da şol zady almak. Theöne programmanyň dowam etmegi bilen bu sanawa käbir obýektleriň goşulyp biljekdigini ýa-da (has erbet zady) öçüriljekdigini göz öňüne getirsek näme etmeli? Soňra sanawdan obýektleri indeksleri bilen alýan ähli usullarymyzda hemme zat bozup biler. Soňra sanawy däl-de, kartany saklamagy makul bildik, bu ýerde açar zerur obýektiň ady bolar, gymmaty obýektiň özi bolar, soň bolsa zerur zatlary diňe atlary bilen alyp bileris. : al ("towuk") we jogap hökmünde bir obýekt towuk aldyk Ora-da, mysal üçin, açar obýektiň synpy, bahasy bolsa obýektiň özi, onsoň obýektiň adyny görkezip bilmeris, diňe zerur obýektiň synpyny görkezip bileris, bu hem amatly. Evena-da hatda kartanyň üstünde haýsydyr bir örtük ýazyň, bu ýerde usullary ýasap bilersiňiz, käbir ýagdaýlarda obýektleriň adyny we beýleki ýagdaýlarda synpy alyp bilersiňiz. Bu, ýazky programma kontekstinden alýan zatlarymyz . Kontekst noýba (zatlar) toplumydyr. Kontekste seredenimizde, zerur bolan noýba (obýekt) adyny, ýa-da görnüşi ýa-da başga bir zady bilen alyp bileris. Mundan başga-da, Bahardan zerur bolan noýba gözläp, usulymyza geçirmegini haýyş edip bileris. Mysal üçin, şuňa meňzeş usul bar bolsa:
public void doSomething(Cat cat) {
    ...
}
Bahar bu usuly bize çagyranda, pişigimiziň obýektini kontekstinden oňa geçirdi. Indi usulymyz, pişikden başga-da, towuk hem gerek diýen karara geldik. Bahary ulanmak - biziň üçin aňsat zat ýok! Diňe ýazýarys:
public void doSomething(Cat cat, Parrot parrot) {
    ...
}
Bahar, bu usulymyzy atlandyranda, bu ýerde pişik we towukdan geçmelidigimize, kontekstine geçmelidigimize, bu iki zady almalydygymyzy we usulymyza geçirmelidigimize düşüner. Maksatnamamyzyň gamyşlaryny Bahara tabşyrmak bilen, obýektleri döretmek we olary çagyrjak usullarymyza geçirmek jogapkärçiligini hem oňa tabşyrdyk. Sorag ýüze çykýar: Bahar haýsy obýektleri (gaplary) döretmelidigini nädip biler?

Programmany konfigurasiýa usullary

Programmany düzmegiň üç esasy usuly bar (ýagny, haýsy obýektleriň işlemelidigini Bahara aýdyň):
  1. xml faýllaryny / sazlamalaryny ulanmak;
  2. java sazlamalaryny ulanmak;
  3. awtomatiki konfigurasiýa.
Bahar döredijiler olary ileri tutulýan tertipde düzýärler:
  • ileri tutulmaly iň ileri tutulýan usul awtomatiki konfigurasiýa;
  • awtomatiki konfigurasiýa ulanyp, mümkin bolan noýbalary dogry düzmek, Java konfigurasiýasyny ulanmak (Java kody ulanyp obýekt döretmek) mümkin däl bolsa;
  • Iň pes ähmiýetli ýol, xml sazlamalaryny ulanyp, köne moda.
Mundan başga-da, Bahar bu usullary birleşdirmäge mümkinçilik berýär. Mysal üçin, Bahar awtomatiki düzülip bilinjek ähli zady etsin; käbir ýörite parametrleri görkezmeli, Java sazlamalaryny ulanyp ýerine ýetirmeli we başga-da, käbir miras sazlamalaryny xml formatda birikdirip bilersiňiz. Umuman aýdanyňda, bularyň hemmesi çeýe edilip bilner. Stillöne şonda-da hemme zat awtomatiki sazlamalar arkaly edilip bilinýän bolsa, ulanyň. Diňe awtomatiki konfigurasiýa we Java sazlamalaryny göz öňünde tutaryn; xml sazlamalary internetdäki her bahar mysalynda diýen ýaly ulanylýar we Java konfigurasiýasynyň işleýşine düşüneniňizden soň, şol bir zady edýän xml faýly "okamak" kyn bolmaz. Awtomatiki konfigurasiýa, işlemek üçin zerur zatlar, ýazan synplarymyzyň obýektleri bolanda ulanylýar . Synpymyzyň obýektini döretmek üçin käbir anyk logika zerur bolsa ýa-da awtomatiki konfigurasiýa tarapyndan alynjak bellikler bilen käbir synplary bellemäge mümkinçiligimiz ýok bolsa, bu Java sazlamalarynda edilip bilner. . Indiki bölümde ajaýyp taslama dörederis, oňa merkezi bahar modullarynyň birnäçesini birikdireris we ilkinji noýbalarymyzy dörederis.
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION