Спринг је Јава оквир који користи контејнер за креирање и управљање различитим компонентама апликације. Контејнер (често се назива контекст апликације Спринг) повезује различите компоненте у апликацији користећи образац дизајна за убризгавање зависности (ДИ). ДИ вам омогућава да користите објекат у зависној класи, без креирања његове нове инстанце унутар зависне класе.
Дакле, уместо да дозволи свакој компоненти да креира нове инстанце оних на које се ослањају, Спрингов контејнер креира и одржава инстанцу сваке од компоненти које хостује. Овај контејнер затим убризгава инстанцу компоненте у све остале компоненте којима је потребна.
Истраживање основних карактеристика Спринг-а
Спринг фрамеворк има око 20 добро организованих модула који играју интегралну улогу у његовој способности да креира и управља апликацијама. На основу примарних карактеристика ових модула, можете их груписати у пет категорија:
- Цоре Цонтаинер
- Приступ подацима/Интеграција
- Веб
- Аспектно оријентисано програмирање и инструментација
- Тест
Спринг Цонтаинер
Спринг користи контејнер за креирање и управљање различитим компонентама (које назива беанс) апликације. Контејнеру се може приступити преко Спринг интерфејса АпплицатионЦонтект, који вам омогућава да инстанцирате, конфигуришете и саставите објекте (или беан-ове). Спринг контејнер може да обавља своју функцију захваљујући метаподацима о конфигурацији.
Ови метаподаци конфигурације могу имати неколико различитих облика, али њихов типичан облик је КСМЛ. Поред пасуља, Спрингов контејнер се такође састоји од језгра, контекста и модула експресије.
Спринг Дата Аццесс/Интегратион
Аспект приступа подацима/интеграције оквира спринг састоји се од неколико подмодула: ЈДБЦ, ОРМ, ОКСМ, ЈМС и трансакција. Ови модули раде заједно за управљање свим подацима које ваша апликација користи.
Спринг Веб
Веб функција Спринг апликације обезбеђује веб оријентисану интеграцију за вашу апликацију. Поред веб оријентисане интеграције, Спринг обезбеђује модул веб сервлета. Модул веб сервлета је одговоран за Спринг имплементација модел-виев-цонтроллер (МВЦ)..
Пролећно аспектно оријентисано програмирање (АОП)
Спрингов АОП оквир је још једна од његових кључних компоненти. Иако АОП оквир није пресудан за Спринг функцију контејнера, он допуњује контејнер тако што је способно решење међувера. Једна од кључних карактеристика АОП оквира је да пружа декларативне услуге предузећа за вашу апликацију, односно управљање трансакцијама декларације.
Декларативно управљање трансакцијама је пожељан приступ развоју софтвера јер има минималан утицај на код апликације.
Спринг Тест
Спринг даје значајан значај тестирању апликација. Његов тестни модул подржава тестирање интеграције и тестирање јединица помоћу ЈУнит или ТестНГ.
Креирање пролећне апликације
Постоји неколико начина за креирање шаблона за нову Спринг апликацију. Различити приступи укључују:
- Из веб апликације (или Спринг Инитиализр) на званичној веб страници Спринг.
- Ручно креирање структуре директоријума пројекта и спецификација изградње.
- Са Спринг Тоол Суите-ом.
- Из командне линије са интерфејсом командне линије Спринг Боот.
- Са Ецлипсе ИДЕ.
- Са ИнтеллиЈ ИДЕА ИДЕ.
Најпопуларнији приступ је Спринг Инитиализр:
Као што видите на горњој слици, имаћете неколико одлука да донесете. Први је тип пројекта који желите да иницијализујете. Спринг нуди три опције: Градле за Гроови, Градле за Котлин или Мавен. Овај пример апликације ће користити Мавен пројекат.
Остале опције које морате да изаберете су језик (Јава), верзија Спринг Боот-а коју желите да користите и метаподаци пројекта. Спринг већ има неке лажне податке у својих пет поља који ће вам помоћи да направите пример апликације. Међутим, мораћете да ажурирате ова поља подацима специфичним за пројекат, пошто ће ови метаподаци описати вашу Спринг апликацију, укључујући Спринг беанс и њихове методе.
Затим ћете морати да изаберете паковање у којем желите да своје датотеке (тегла или рат). Затим можете да изаберете верзију Јаве коју имате на свом уређају. Коначна одлука коју ћете морати да донесете је врста зависности коју желите за своју апликацију.
Спринг пружа неколико зависности које можете користити за додавање својстава вашој апликацији. Да бисте својој апликацији додали нову зависност, једноставно кликните на дугме за додавање зависности десно од Спринг Инитиализр-а. Ова радња ће генерисати следећи слој на екрану:
За овај пример апликације, једина зависност која ће вам требати је Спринг Веб. Ова зависност вам омогућава да правите веб апликације користећи МВЦ архитектуру. Након што изаберете све зависности које желите да користите у својој апликацији, наставите са генерисањем клика. Ово ће преузети шаблон пројекта за вас.
Сада имате пројекат Спринг Боот (који је једна од Спринг библиотека). Последњи корак је увоз пројекта у жељени ИДЕ. Ваш пролећни пројекат ће имати следећу структуру пројекта:
Ово је нормална структура Мавен пројекта и постоји неколико важних датотека са којима морате да се упознате.
- Пом.кмл: Ово садржи податке о конфигурацији Спринг апликације.
- ОнлинеСхопахолицсАпплицатион.јава: Ово је главна класа Спринг Боот која извршава апликацију.
- ОнлинеСхопахолицсАпплицатионТест.јава: Ово је а ЈУнит тест класа која осигурава да се контекст (или контејнер) Спринг апликације исправно учитава.
Покретање пролећне апликације
Спринг-ова боотстрап класа, која је у овом случају класа ОнлинеСхопахолицсАпплицатион, има следећи почетни код:
пакет цом.онлинесхопахолицс;
увозорг.спрингфрамеворк.боот.СпрингАпплицатион;
увозорг.спрингфрамеворк.боот.аутоцонфигуре.СпрингБоотАпплицатион;
@СпрингБоотАпплицатион
јавностикласаОнлинеСхопахолицсАпплицатион{
јавностистатичнапразнинаглавни(Стринг[] аргументи){
СпрингАпплицатион.рун (ОнлинеСхопахолицсАпплицатион.класа, аргс);
}
}
Један од најважнијих аспеката кода изнад је @СпрингБоотАпплицатион напомена, која је сложена белешка која омогућава вашој апликацији да приступи функцијама три друге напомене:
- @ЕнаблеАутоцонфигуратион: Ова напомена омогућава аутоматску конфигурацију Спринг Боот-а. То значи да говори Спринг боот-у да конфигурише било коју компоненту за коју мисли да ће ваша апликација морати да функционише.
- @ЦомпонентСцан: Ова напомена вам омогућава да омогућите скенирање компоненти. Ова карактеристика је важна, омогућава Спринг-у да аутоматски открије и региструје друге означене компоненте за коришћење у контексту Спринг апликације (или контејнеру).
- @СпрингБоотЦонфигуратион: Ово је специјализовани облик напомене @Цонфигуреатион, који вам омогућава да региструјете беан (или објекте) у контексту Спринг апликације.
Други важан аспект кода изнад је главни() метод, он извршава вашу апликацију. Када се апликација сада изврши, она једноставно покреће сервер. Дакле, ако желите да додате више функционалности апликацији, мораћете да ажурирате код:
пакет цом.онлинесхопахолицс;
увозорг.спрингфрамеворк.боот.СпрингАпплицатион;
увозорг.спрингфрамеворк.боот.аутоцонфигуре.СпрингБоотАпплицатион;
увозорг.спрингфрамеворк.веб.бинд.Анотација.ГетМаппинг;
увозорг.спрингфрамеворк.веб.бинд.Анотација.РекуестПарам;
увозорг.спрингфрамеворк.веб.бинд.Анотација.РестЦонтроллер;@СпрингБоотАпплицатион
@РестЦонтроллер
јавностикласаОнлинеСхопахолицсАпплицатион{
јавностистатичнапразнинаглавни(Стринг[] аргументи){
СпрингАпплицатион.рун (ОнлинеСхопахолицсАпплицатион.класа, аргс);
}
@ГетМаппинг("/купац")
јавности Низ Добродошли(@РекуестПарам (вредност = "име", дефаултВалуе = "Купац") Низ име) {
повратакНиз.формат(„Добро дошли %с!“, име);
}
}
Апликација Спринг Боот сада има три нове напомене:
- @РестЦонтроллер: Ова напомена означава класу као контролер, тако да ће сваки метод у класи изнад (осим маин()) вратити објекат домена уместо погледа.
- @ГетМаппинг: Ова напомена мапира ХТТП ГЕТ захтеве на одређене методе заглавља. Дакле, сваки пут када креирате захтев за „/цустомер“ у претраживачу, метода Велцоме() ће обрадити захтев враћајући вредност стринга.
- @РекуестПарам: Ова напомена указује да параметар методе треба да буде везан за параметар веб захтева.
Са ажурираним кодом ваше пролеће ОнлинеСхопахолицсАпплицатион сада има корисничку страницу коју можете погледати у свом претраживачу. Извршавање апликације ће покренути сервер и произвести излаз у конзоли.
У излазу је много важних информација. Он вам говори да сервер ради, говори вам колико је дуго трајао процес иницијализације и говори вам на ком порту апликација ради (8080, подразумевано). Стога, ако се крећете до http://localhost: 8080/купац видећете следећи излаз у вашем претраживачу:
Сада можете да дизајнирате приказ своје апликације
Још једна важна датотека у структури пројекта коју можете приметити је шаблони фолдер. У идеалном случају, ОнлинеСхопахолицсАпплицатион класа треба да служи као контролер, који обрађује захтеве за различите погледе. Стога, у комплетној апликацији, класа контролера не би требало да садржи текст који ће се приказати у приказу њеног захтева.
Уместо тога, мораћете да креирате датотеке шаблона користећи ХТМЛ и да их поставите у фасциклу са шаблонима ваше Спринг апликације.