JavaRush /Kurslar /All lectures for UZ purposes /Spring Framework Sharhi

Spring Framework Sharhi

All lectures for UZ purposes
Daraja, Dars
Mavjud

Spring Java bilan korporativ ilovalarni yaratishni osonlashtiradi. U Java tilidan korporativ muhitda foydalanish uchun kerak bo'lgan hamma narsani taqdim etadi, jumladan Groovy va Kotlin tilini JVMda zamonaviy tillar o'rniga qo'llab-quvvatlaydi va ilova talablariga qarab turli xil arxitekturalarni yaratishga moslashuvchanlik taqdim etadi. Spring Framework 5.1 dan boshlab, Spring JDK 8+ (Java SE 8+) talab qiladi va JDK 11 LTS ning o'rnatilgan qo'llab-quvvatlashni taqdim etadi. Java SE 8 update 60 ga JDK 8 bilan ishlash uchun minimal to'g'ri bo'lgan burilishni qo'llash taklif etiladi, lekin odatda eng yangi burilishni ishlatish tavsiya etiladi.

Spring ko'plab foydalanish ssenariylarini qo'llab-quvvatlaydi. Katta korxonada ilovalar ko'pincha uzoq muddat davomida qo'llaniladi va ularni yangilash sikli dasturchi nazoratidan tashqarida bo'lgan JDK va ilova serverida ishlashi kerak. Ba'zi ilovalar bulutli muhitda, imkoniyati bo'lsa, ichki serverda yagona jar fayli sifatida ishlaydi. Boshqalar mustaqil ilovalar bo'lishi mumkin (masalan, paketli yoki integratsion ish yuklamalari) va ularga server kerak emas.

Spring ochiq manba kodli. Bu keng va faol jamoaga ega bo'lib, keng doira real foydalanish ssenariylariga asoslangan doimiy fikr-mulohazalarni taqdim etadi. Bu Springning uzoq vaqt boqiy rivojlanishida muvaffaqiyatli bo'lishiga yordam berdi.

"Spring" deganda nima tushunamiz

"Spring" atamasi turli kontekstlarda turlicha narsalarni anglatishi mumkin. Bu Spring Framework loyihasini ifodalash uchun ishlatiladi, hammasi undan boshlangan. Vaqt o'tishi bilan boshqa Spring loyihalari Spring Frameworkning ustiga qurilgan. Ko'pincha odamlar "Spring" haqida gapirganda, ular barcha loyihalar oilasini nazarda tutadi. Ushbu yordamchi hujjat asosiy maqsadga qaratilgan: Spring Frameworkning o'ziga.

Spring Framework modullarga bo'lingan. Ilovalar ularga qaysi modullar kerakligini tanlashi mumkin. Asosida konfiguratsiya modeli va Dependency Injection (DI) mexanizmini o'z ichiga olgan asosiy konteyner modullari joylashgan. Bundan tashqari, Spring Framework turli ilovalar arxitekturalari uchun asosiy qo'llab-quvvatlashni taqdim etadi, jumladan, xabar almashish, tranzaktsiya ma'lumotlari va saqlash, hamda veb. U, shuningdek, servletlar asosidagi Spring MVC veb-freymvorkini va parallel ravishda Spring WebFlux reaktiv veb-freymvorkini o'z ichiga olgan.

Modullar haqida izoh: Spring freymvorkning jar fayllari ularni JDK 9 moduli yo'liga (Jigsaw) joylashtirishga imkon beradi. Jigsaw qo'llab-quvvatlanadigan ilovalarda foydalanish uchun Spring Framework 5 jar fayllari "Automatic-Module-Name" manifest yozuvlari bilan taqdim etiladi, bu modullarning tildagi barqaror nomlarini belgilaydi ("spring.core", "spring.context" va h.k.), jar artefaktlar nomlaridan mustaqil (jar fayllarning nomlanish sxemasi "." o'rniga "-" bilan, masalan "spring-core" va "spring-context"). Albatta, Spring freymvorkning jar fayllari hali ham JDK 8da hamda 9+da classpath bilan yaxshi ishlaydi.

Spring va Spring Frameworkning tarixi

Spring 2003 yilda erta J2EE spetsifikatsiyalarning murakkabligiga javob sifatida paydo bo'ldi. Garchi ba'zilari Java EE va Springni raqobatchilar deb hisoblashsa-da, Spring aslida Java EEga qo'shiladi. Springning dasturlash modeli Java EE platformasi spetsifikatsiyasini o'z ichiga olmaydi; aksincha, u umumiy EE dan tanlangan alohida spetsifikatsiyalar bilan integratsiyalanadi:

  • Servlet API (JSR 340)
  • WebSocket API (JSR 356)
  • Paralelizm yordamchi vositalari (JSR 236)
  • JSON Binding API (JSR 367)
  • Bean Validation (JSR 303)
  • JPA (JSR 338)
  • JMS (JSR 914)
  • va kerak bo'lsa, tranzaktsiyalarni muvofiqlashtirish uchun JTA/JCA konfiguratsiyalari.

Spring Framework, shuningdek, ilovalar ishlab chiquvchilari Spring Framework tomonidan taqdim etilgan Springga xos muvofiqlashtirish mexanizmlaridan foydalanish o'rniga foydalanishi mumkin bo'lgan Dependency Injection (JSR 330) va umumiy annotatsiyalar (JSR 250)ni qo'llab-quvvatlaydi.

Spring Framework 5.0 dan boshlab, Spring hech bo'lmaganda, Java EE 7 darajasini (masalan, Servlet 3.1+, JPA 2.1+) talab qiladi, bir vaqtning o'zida, yangi Java EE 8 darajasidagi APIlar bilan vaqtinchalik uchrashish vaqtida integratsiyani taqdim etadi (masalan, Servlet 4.0, JSON Binding API). Bu Springning, masalan, Tomcat 8 va 9, WebSphere 9 va JBoss EAP 7 bilan to'liq moslashuvchanligini ta'minlaydi.

Vaqt o'tishi bilan Java EEning ilovalarni rivojlantirishdagi roli evolyutsiya qildi. Java EE va Springning ilk kunlarida ilovalar ilova serverida joylashish uchun yaratildi. Bugungi kunda, Spring Boot yordamida, ilovalar devops va bulutli hisoblashlarni qulay qilishga mo'ljallangan tashqi servlet konteynerni o'z ichiga olgan usulda yaratiladi. Spring Framework 5dan boshlab, WebFlux ilovasi hatto Servlet APIga to'g'ridan-to'g'ri murojaat qilmaydi va servlet konteynerlari emas, masalan, Netty kabi serverlarda ishlashi mumkin.

Spring innovatsiyalarni kiritishda va rivojlanishda davom etmoqda. Spring Frameworkdan tashqari, Spring Boot, Spring Security, Spring Data, Spring Cloud, Spring Batch va h.k. kabi boshqa loyihalar ham mavjud. Har bir loyihaning o'zidagi manba kode rejasi, muammo kuzatuvchi va yangi versiyalar chiqarilish chastotasi borligini esda tutish muhim. Spring loyihalarining to'liq ro'yxatini ko'rish uchun spring.io/projects ga qarang.

Loyiha tamoyillari

Freymvorkni o'rganishda, uning qanday ishlashini emas, balki qanday tamoyillar asosida ishlashini tushunish muhimdir. Spring Frameworkning asosiy ish tamoyillari:

  • Har darajada tanlash imkoni. Spring loyihaviy qarorlarni "imkon qadar kechroq" qabul qilishga imkon beradi. Masalan, siz ma'lumotlarni saqlash xizmatlarini kodingizni o'zgartirmasdan tizim sozlamalari orqali almashtirishingiz mumkin. Bu boshqa ko'plab infrastrukturaviy va uchinchi tomon APIlari bilan integratsion muammo uchun ham amal qiladi.
  • Turli nuqtai nazarlarni hisobga olish. Spring qanday qilib biror narsani qilish kerakligiga qattiq belgilangan yondashmani emas, balki turli xil qo'llab-quvvatlashni taklif qiladi. U turli xil ilova ehtiyojlari uchun turli qarashlar bilan yechimlarni taklif qiladi.
  • Yuqori darajadagi orqaga moslikni qo'llab-quvvatlash. Springning evolyutsion rivojlanishi versiyalar o'rtasida bir nechta muhim o'zgarishlarni kiritish maqsadida puxta o'ylangan. Spring JDK va uchinchi tomon kutubxonalari tanlangan vaqti puxta tanlangan bo'lib, Springga bog'liq ilovalar va kutubxonalarni xizmatga olishni oson qiladi.
  • API dizayniga e'tibor. Spring jamoasi ko'p vaqt va kuchni intuitiv APIlarni yaratish uchun sarflaydi, bu esa ko'p versiyalar orasida va yillar davomida ishlashini ta'minlaydi.
  • Kodni sifatiga yuqori talablar. Spring Framework mazmunli, dolzarb va aniq javadocga katta e'tibor qaratadi. Bu paketlar o'rtasida tsiklik bog'liqliklar bo'lmagan toza kod tarkibiga da'vo qilishi mumkin bo'lgan juda kam sonli loyihalardan biri.

Fikr-mulohaza va rivojlanishga hissa qo'shish

Amaliy savollarga javoblarni qidirish, diagnostika yoki nosozliklarni tuzatish uchun biz Stack Overflow'dan foydalanishni tavsiya qilamiz. Stack Overflowda foydalanish uchun tavsiya etiladigan teglarning ro'yxati bilan tanishish uchun bu yerni bosing. Agar Spring Frameworkda muammo borligiga aniq ishonchingiz komil bo'lsa yoki biror funksiya taklif qilmoqchi bo'lsangiz, iltimos GitHub Issuesdan foydalaning.

Agar taklif qilingan yechimingiz yoki tuzatishga bor bo'lsa, u holda Githubga so'rov yuborishingiz mumkin. Ammo, iltimos, eng triviyal savollardan tashqari, har qanday masala uchun, muhokamalar va kelajakda foydalanish uchun yozuvlarni qoldirayotgan muammo kuzatuv tizimiga so'rov yuborilishi kutamiz.

Batafsil ma'lumot olish uchun yuqori darajadagi loyiha sahifasi "RIVOJLANTIRISHGA HISSA QO'SHISH" bo'limidagi qo'llanmani ko'rib chiqing.

Ishni boshlash

Agar siz Spring bilan ishla boshlayotgan bo'lsangiz, Spring Frameworkdan foydalanishni Spring Boot asosida ilova yaratish orqali boshlashingiz mumkin. Spring Boot loyihasi Spring asosida ishlaydigan ilovani tez (va aniq) yaratishning qulay yo'lini taklif qiladi. U Spring Frameworkga asoslangan, konfiguratsiyadan ko'ra kelishuvga afzallik beradi va iloji boricha tezroq ishlashni boshlashga mo'ljallangan.

Bazaviy loyihani yaratish uchun start.spring.ioni ishlatishingiz yoki "Ishni boshlash" bo'yicha biror qo'llanmaga ergashishingiz mumkin, masalan "RESTful veb-xizmat yaratishni boshlash". Ushbu qo'llanmalar yanada osonroq o'zlashtiriladi, ular juda maqsadga yo'naltirilgan va ko'pchiligi Spring Bootga asoslangan. Shuningdek, ular Spring portfelidagi boshqa loyihalarni ham qamrab oladi, ehtimol siz ma'lum bir muammoni hal qilishingiz mumkin bo'lgan.

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION