Spring Framework
Спринг Фрамеwорк — бу Жава платформаси учун дастур тизими ва бошқарув контейнерининг инверсияси. Рамканинг асосий хусусиятларидан ҳар қандай Жава иловаси фойдаланиши мумкин, аммо Жава ЭЭ (Энтерприсе Эдитион) платформасида веб-иловаларни яратиш учун кенгайтмалар мавжуд. Гарчи рамка (Фрамеwорк) ҳеч қандай махсус дастурлаш моделини юкламаса ҳам, у Жава ҳамжамиятида Энтерприсе ЖаваБеанс (ЭЖБ) моделига қўшимча сифатида машҳур бўлди. Спринг Фрамеwорк очиқ манба ҳисобланади.
Версия тарихи
| Версия | Сана | Изоҳлар |
|---|---|---|
| 0,9 | 2003 йил | |
| 1.0 | 2004-йил 24 март | Биринчи ишлаб чиқалган нашр. |
| 2.0 | 2006 йил | |
| 3.0 | 2009 йил | |
| 4.0 | 2013 йил | |
| 5.0 | 2017 йил | |
| 6.0 | 2022-йил 16 Ноябр |
Биринчи версияни Род Жонсон ёзган бўлиб, у 2002-йил октябр ойида ўзининг "Эхперт Оне-он-Оне Ж2ЭЭ Десигн анд Девелопмент" китобини нашр қилиш билан асос солган. Рамка (Фрамеwорк) биринчи марта 2003-йил июн ойида Апаче 2.0 лицензияси остида чиқарилган. Биринчи ишлаб чиқариш релизи, 1.0, 2004-йил март ойида чиқарилган[1] Спринг 1.2.6 рамкаси 2006-йилда Жолт унумдорлик мукофоти ва ЖАХ Инноватион Аwард мукофотига сазовор бўлди[2][3] Спринг 2.0 2006-йил октябр ойида, Спринг 2.5 2007-йил ноябрда, Спринг 3.0 2009-йил декабрда, Спринг 3.1-декабр 2011-йилда ва Спринг 3.2.5 2013-йил ноябрда чиқди[4] Спринг Фрамеwорк 4.0 2013-йил декабр ойида чиқарилган[5] Спринг 4.0-даги сезиларли яхшиланишлар Жава СЕ (Стандард Эдитион) 8, Гроовй 2, Жава ЭЭ 7 ва WебСоcкет нинг баъзи жиҳатларини қўллаб-қувватлашни ўз ичига олади.
Спринг Боот 1.0 2014-йил апрел ойида чиқарилган[6]
Спринг Фрамеwорк 4.2.0 2015-йил 31-июлда чиқарилди ва дарҳол 2015-йил 01-сентабрда чиқарилган 4.2.1 версиясига янгиланди[7] У "Жава 6, 7 ва 8 билан мос келади, асосий такомиллаштириш ва замонавий веб имкониятларига эътибор қаратади" .[8]
Спринг Фрамеwорк 4.3 2016-йил 10-июнда чиқарилган ва 2020-йилгача қўллаб-қувватланади[9] У "умумий Спринг 4 тизим талаблари доирасида якуний авлод бўлади (Жава 6+, Сервлет 2.5+), [. . . ]" .[8]
Спринг 5 Реаcтиве Стреамс га мос келадиган Реаcтор Cоре[10] асосида қурилиши эълон қилинди.
Спринг Фрамеwорк 6.0 2022-йил 16-ноябрда чиқарилди ва Жава 17+ базаси ва Сервлет 6.0 ва ЖПА каби яқинда чиқарилган Жакарта ЭЭ 10 АПИ-ларига эътибор қаратган ҳолда Жакарта ЭЭ 9+ (жакарта номлар майдонида) га кўчирилди. 3.1.[11]
Модуллар
Спринг Фрамеwорк бир қатор хизматларни тақдим этадиган бир нечта модулларни ўз ичига олади:
- Спринг Cоре контейнери: бу Спрингнинг асосий модули ва баҳор контейнерларини (БеанФаcторй ва АпплиcатионCонтехт) тақдим этади.[12]
- Аспектга йўналтирилган дастурлаш : ўзаро боғлиқ муаммоларни амалга ошириш имконини беради.
- Аутентификация ва авторизация : Спринг Сеcуритй кичик лойиҳаси (формерлй Аcеги Сеcуритй Сйстем фор Спринг) орқали бир қатор стандартлар, протоколлар, воситалар ва амалиётларни қўллаб-қувватлайдиган созланиши мумкин бўлган хавфсизлик жараёнлари.
- Конфигурация бўйича конвенция : Спринг Роо модулида баҳорга асосланган корпоратив иловалар учун тезкор дастурларни ишлаб чиқиш ечими таклиф этилади
- Маълумотларга кириш : Жава маълумотлар базаси уланиши (ЖДБC) ва обект билан боғлиқ хариталаш воситалари ва НоСҚЛ маълумотлар базалари ёрдамида Жава платформасида реляцион маълумотлар базасини бошқариш тизимлари билан ишлаш
- Бошқарув контейнерининг инверсияси : дастур компонентларини конфигурация қилиш ва Жава обектларининг ҳаёт айланишини бошқариш, асосан боғлиқлик киритиш орқали амалга оширилади.
- Хабарлар: Жава Мессаге Сервиcе (ЖМС) орқали хабарлар навбатларидан шаффоф хабар истеъмол қилиш учун хабарларни тингловчи обектларини декларатив рўйхатга олиш, стандарт ЖМС АПИ орқали хабар юборишни такомиллаштириш
- Модел-кўриниш-контроллер : веб-иловалар ва РЕСТфул (вакиллик ҳолатини узатиш) веб-хизматларини кенгайтириш ва созлаш учун илгаклар билан таъминловчи ҲТТП ва сервлетга асосланган рамка.
- Масофавий кириш тизими: декларатив масофавий процедура чақируви (РПC) услубидаги Жава обектларини Жава масофавий усулни чақириш (РМИ), CОРБА (Cоммон Обжеcт Реқуэст Брокер Арчитеcтуре) ва ҲТТП -га асосланган протоколлар, шу жумладан веб-хизматлар (СОАП (Симпле Обжеcт Аccесс) қўллаб-қувватлайдиган тармоқлар орқали маршалллаш. Протокол))
- Транзаксияларни бошқариш : бир нечта транзаксияларни бошқариш АПИ-ларини бирлаштиради ва Жава обектлари учун транзакцияларни мувофиқлаштиради
- Масофадан бошқариш: Жава бошқарув кенгайтмалари (ЖМХ) орқали маҳаллий ёки масофавий конфигурация учун Жава обектларини декларатив таъсир қилиш ва бошқариш
- Синов : бирлик тестлари ва интеграция тестларини ёзиш учун қўллаб-қувватлаш дарслари
Текшириш контейнерининг инверсияси (қарамлик киритиш)
Спринг Фрамеwорк-нинг марказида унинг бошқарув контейнерининг инверсияси (ИоC) жойлашган бўлиб, у акс эттириш ёрдамида Жава обектларини созлаш ва бошқаришнинг изчил воситаларини таъминлайди. Контейнер муайян обектларнинг обект ҳаётий даврларини бошқариш учун жавобгардир: бу обектларни яратиш, уларни ишга тушириш усулларини чақириш ва уларни бир-бирига улаш орқали ушбу обектларни созлаш.
Контейнер томонидан яратилган обектлар, шунингдек, бошқариладиган обектлар ёки фасол деб аталади. Контейнерни ХМЛ (кенгайтирилган белгилаш тили) файлларини юклаш ёки конфигурация синфларида махсус Жава изоҳларини аниқлаш орқали созлаш мумкин. Ушбу маълумотлар манбаларида ловия яратиш учун зарур бўлган маълумотларни тақдим этадиган ловия таърифлари мавжуд.
Обектларни қарамликни қидириш ёки қарамликни инъэкция қилиш орқали олиш мумкин.[13] Тобеликни қидириш — бу қўнғироқ қилувчининг контейнер обектидан маълум бир номли ёки маълум турдаги обектни сўраши намунасидир. Боғлиқлик инъэкцияси — контейнер конструкторлар, хусусиятлар ёки завод усуллари орқали обектларни номи билан бошқа обектларга ўтказадиган намунадир.
Кўп ҳолларда Спринг Фрамеwоркнинг бошқа қисмларидан фойдаланганда контейнердан фойдаланиш шарт эмас, лекин ундан фойдаланиш дастурни созлаш ва созлашни осонлаштиради. Спринг контейнери иловаларни созлаш учун изчил механизмни тақдим этади ва кичик ўлчамли иловалардан тортиб йирик корпоратив иловаларгача деярли барча Жава муҳитлари билан интеграциялашади.
Контейнер Питчфорк лойиҳаси орқали қисман мос келадиган ЭЖБ (Энтерприсе ЖаваБеанс) 3.0 контейнерига айлантирилиши мумкин. Бироз стандартларга мос келмаслиги учун Спринг Фрамеwоркни танқид қилади.[14] Бироқ, СпрингСоурcе ЭЖБ 3 мувофиқлигини асосий мақсад сифатида кўрмайди ва Спринг Фрамеwорк ва контейнер янада кучли дастурлаш моделларини яратишга имкон беради, деб даъво қилади.[15] Дастурчи обектни тўғридан-тўғри яратмайди, лекин уни Спринг конфигурация файлида белгилаш орқали уни қандай яратиш кераклигини тасвирлайди. Худди шундай хизматлар ва компонентлар бевосита чақирилмайди; Бунинг ўрнига Спринг конфигурация файли қайси хизматлар ва компонентларни чақириш кераклигини белгилайди. Ушбу ИоC техник хизмат кўрсатиш ва синовдан ўтказиш қулайлигини ошириш учун мўлжалланган.
Аспектга йўналтирилган дастурлаш рамкаси
Спринг Фрамеwорк ўзининг аспектга йўналтирилган дастурлаш (АОП) тизимига эга бўлиб, у аспектлар бўйича ўзаро боғлиқ муаммоларни модуллаштиради. АОПнинг алоҳида рамкасини яратиш мотивацияси дизайн, амалга ошириш ёки конфигурацияда жуда мураккабликсиз асосий АОП хусусиятларини таъминлаш мумкин бўлиши керак деган ишончдан келиб чиқади. Спринг АОП рамкаси, шунингдек, Спринг контейнеридан тўлиқ фойдаланади.
Спринг АОП рамкаси прокси-сервер намунасига асосланган ва иш вақтида созланган. Бу компиляция босқичига ёки юклаш вақтида тўқувга бўлган эҳтиёжни йўқ қилади. Бошқа томондан, ушлаш фақат қўшилиш нуқтасида мавжуд обектларда умумий усулни бажаришга имкон беради.
АспеcтЖ рамкаси билан солиштирганда, Спринг АОП камроқ кучли, аммо унчалик мураккаб эмас. Спринг 1.2 контейнердаги АспеcтЖ аспектларини созлаш учун ёрдамни ўз ичига олади. Спринг 2.0 АспеcтЖ билан қўшимча интеграцияни қўшди; масалан, нуқта кесиш тили қайта ишлатилади ва Спринг АОП-га асосланган жиҳатлар билан аралаштирилиши мумкин. Бундан ташқари, Спринг 2.0 Спринг Аспеcц кутубхонасини қўшди, бу АспеcтЖ-дан АспеcтЖ компиляция қилиш ёки юклаш вақтида тўқиш орқали декларатив транзакцияларни бошқариш ва қарамликни инъэкция қилиш каби умумий Спринг хусусиятларини таклиф қилиш учун фойдаланади. СпрингСоурcе, шунингдек, Спринг Роо ва Спринг Инсигҳт каби баҳорги бошқа лойиҳаларда АспеcтЖ АОП-дан фойдаланади, Спринг Сеcуритй шунингдек, АспеcтЖ-га асосланган аспектлар кутубхонасини таклиф қилади.
Спринг АОП уни Спринг Фрамеwорк ичидаги ўзаро боғлиқ муаммолар билан ишлашга имкон бериш учун ишлаб чиқилган. Контейнер томонидан яратилган ва созланган ҳар қандай обект Спринг АОП ёрдамида бойитилган бўлиши мумкин.
Спринг Фрамеwорк транзаксияларни бошқариш, хавфсизлик, масофавий кириш ва ЖМХ учун Спринг АОП-дан ички фойдаланади.
Рамканинг 2.0 версиясидан бошлаб, Спринг АОП конфигурациясига иккита ёндашувни тақдим этади:
<беанс хмлнс="ҳттп://www.спрингфрамеwорк.орг/счема/беанс"
хмлнс:мвc="ҳттп://www.спрингфрамеwорк.орг/счема/мвc"
хмлнс:хси="ҳттп://www.w3.орг/2001/ХМЛСчема-инстанcе"
хмлнс:аоп="ҳттп://www.спрингфрамеwорк.орг/счема/аоп"
хмлнс:cонтехт="ҳттп://www.спрингфрамеwорк.орг/счема/cонтехт"
хси:счемаЛоcатион="ҳттп://www.спрингфрамеwорк.орг/счема/беанс
ҳттп://www.спрингфрамеwорк.орг/счема/беанс/спринг-беанс.хсд
ҳттп://www.спрингфрамеwорк.орг/счема/cонтехт
ҳттп://www.спрингфрамеwорк.орг/счема/cонтехт/спринг-cонтехт.хсд
ҳттп://www.спрингфрамеwорк.орг/счема/мвc
ҳттп://www.спрингфрамеwорк.орг/счема/мвc/спринг-мвc.хсд
ҳттп://www.спрингфрамеwорк.орг/счема/аоп
ҳттп://www.спрингфрамеwорк.орг/счема/аоп/спринг-аоп.хсд">
Шунингдек, у оптималлаштириш ва қисмларга ажратиш усуллари орқали жуда юқори ҳажмли ва юқори унумдорликдаги оммавий ишларни амалга ошириш имконини берувчи илғор техник хизматлар ва хусусиятларни тақдим этади. Спринг Батч бир қатор ишларни бажаради; иш кўп босқичлардан иборат бўлиб, ҳар бир қадам ЎҚИШ-ЖАРАЙОН-ЙОЗИСҲ вазифасидан ёки битта операция вазифасидан (вазифалар) иборат.
„ЎҚИСҲ-ЖАРАЙОН-ЙОЗИСҲ“ жараёни қуйидаги босқичлардан иборат: ресурсдан маълумотларни „ўқиш“ (вергул билан ажратилган қийматлар (CСВ), ХМЛ ёки маълумотлар базаси), уни „қайта ишлаш“, сўнгра бошқа ресурсларга „ёзиш“ (CСВ, ХМЛ ёки маълумотлар базаси). Масалан, қадам CСВ файлидан маълумотларни ўқиши, уни қайта ишлаши ва маълумотлар базасига ёзиши мумкин. Спринг Батч CСВ, ХМЛ ва маълумотлар базасини ўқиш/ёзиш учун кўплаб синфларни тақдим этади.
„Ягона“ операция вазифаси (топшириқ) учун бу фақат битта вазифани бажаришни англатади, масалан, қадам бошланишидан ёки тугалланишидан олдин ёки кейин ресурсларни тозалаш.
Босқичларни иш сифатида ишлатиш учун бир-бирига боғлаш мумкин.
Интеграция тизими
Спринг Интегратион — бу хабар алмашиш ёки воқеаларга асосланган архитектуралар учун зарур бўлган қайта фойдаланиш мумкин бўлган функсияларни таъминловчи корпоратив иловалар интеграцияси учун рамка.
- маршрутизаторлар — шартлар асосида хабарни хабар каналига йўналтиради
- трансформаторлар — хабар юкини ўзгартиради / ўзгартиради / ўзгартиради ва ўзгартирилган фойдали юк билан янги хабар яратади
- адаптерлар — бошқа технологиялар ва тизимлар (ҲТТП, АМҚП (Кенгайтирилган хабарлар навбати протоколи), ЖМС (Жава хабар хизмати), ХМПП (кенгайтирилган хабарлар ва мавжудлик протоколи), СМТП (оддий почта узатиш протоколи), ИМАП (Интернет хабарларига кириш протоколи) билан интеграция қилиш учун.), ФТП (Файл узатиш протоколи), шунингдек ФТПС / СФТП, файл тизимлари ва бошқалар.)
- филтрлар — мезонлар асосида хабарни филтрлайди. Агар шартлар бажарилмаса, хабар ўчирилади.
- хизмат фаоллаштирувчилари — хизмат кўрсатиш обектида операцияни чақириш
- бошқарув ва аудит
Спринг Интегратион қувур ва филтрга асосланган архитектурани қўллаб-қувватлайди.
Спринг4Шелл заифлиги
Бошқа ҳар қандай дастурий таъминот бўлаги сингари, Спрингда ҳам баъзи заифликлар бўлиши мумкин. Улардан бири (Андоза:CВЕ)шунга ўхшаш „Спринг4Шелл“ деб номланганЛог4Шелл.[18]
Яна қаранг
- <а ҳреф="ҳттпс://эн.wикипедиа.орг/wики/Апаче_Тапестрй" рел="мw:ЭхтЛинк" титле="Апаче Тапестрй" cласс="cх-линк" дата-линкид="468">Апаче Тапестрй</а>
- <а ҳреф="ҳттпс://эн.wикипедиа.орг/wики/Гоогле_Гуиcе" рел="мw:ЭхтЛинк" титле="Гоогле Гуиcе" cласс="cх-линк" дата-линкид="470">Гоогле Гуиcе</а>
- <а ҳреф="ҳттпс://эн.wикипедиа.орг/wики/Ҳибернате_(фрамеwорк)" рел="мw:ЭхтЛинк" титле="Ҳибернате (фрамеwорк)" cласс="cх-линк" дата-линкид="472">Ҳибернате (фрамеwорк</а>
- Лист оф Жава фрамеwоркс
- <а ҳреф="ҳттпс://эн.wикипедиа.орг/wики/Cомпарисон_оф_сервер-сиде_wеб_фрамеwоркс" рел="мw:ЭхтЛинк" титле="Cомпарисон оф сервер-сиде wеб фрамеwоркс" cласс="cх-линк" дата-линкид="476">Cомпарисон оф wеб фрамеwоркс</а>
- <а ҳреф="ҳттпс://эн.wикипедиа.орг/wики/Спринг_Wеб_Флоw" рел="мw:ЭхтЛинк" титле="Спринг Wеб Флоw" cласс="cх-линк" дата-линкид="478">Спринг Wеб Флоw</а>
Маълумотномалар
- ↑ „Спринг Фрамеwорк 1.0 Финал Релеасед“. Оффиcиал Спринг Фрамеwорк блог (2014-йил 24-март). Қаралди: 1-март 2021-йил.
- ↑ Жолт wиннерс 2006
- ↑ „ЖАХ Инноватион Аwард Геwиннер 2006“. 2009-йил 17-августда асл нусхадан архивланган. Қаралди: 12-август 2009-йил.
- ↑ „Спринг Фрамеwорк 3.2.5 Релеасед“. Оффиcиал Спринг wебсите (2013-йил 7-ноябр). Қаралди: 16-октабр 2016-йил.
- ↑ „Анноунcинг Спринг Фрамеwорк 4.0 ГА Релеасе“. Спринг блог (12-декабр 2013-йил).
- ↑ „Спринг Боот в1.0.0.РЕЛЕАСЕ“. гитҳуб.cом.
- ↑ „Спринг Фрамеwорк 4.2 гоэс ГА“. Спринг Блог (31-июл 2015-йил).
- ↑ 8,0 8,1 „Спринг Фрамеwорк 4.2 гоэс ГА“. Спринг Блог.
- ↑ „Упградинг то Спринг Фрамеwорк 5.х“. гитҳуб.cом.
- ↑ „Реаcтиве Спринг“. Спринг Блог (9-феврал 2016-йил).
- ↑ „Спринг Фрамеwорк 6.0 гоэс ГА“. Спринг Блог (16-ноябр 2022-йил).
- ↑ Спринг Фрамеwорк доcументатион фор тҳе Cоре Cонтаинер
- ↑ Wҳат ис тҳе дифференcе бетwеэн тҳе депенcйлоокуп анд депенденcй инжеcтион — Спринг Форум[сайт ишламайди]. Форум.спрингсоурcе.орг (2009-10-28). Ретриэвед он 2013-11-24.
- ↑ Спринг ВС ЭЖБ3
- ↑ „Питчфорк ФАҚ“. 2008-йил 28-январда асл нусхадан архивланган. Қаралди: 6-июн 2006-йил.
- ↑ „Спринг АОП ХМЛ Cонфигуратион“. 2018-йил 10-февралда асл нусхадан архивланган. Қаралди: 2023-йил 8-март.
- ↑ АспеcтЖ Аннотатион Cонфигуратион
- ↑ „Спринг4Шелл: cритиcал вулнерабилитй ин Спринг - Касперскй оффиcиал блог“.