Spring Framework
Spring Framework је радни оквир за платформу Java који обезбеђује инфраструктуру за развој апликације. Омогућава лакше и брже креирање софтвера, чистији код на јави, а тиме и лакше одржавање апликације. Spring је организован у око 20 модула које је могуће појединачно употребљавати зависно од потреба апликације и отвореног је кода. Историја верзија
Прву верзију је написао Род Џонсон, а представио је крајем октобра 2002. У јуну 2003. оквир је први пут објављен под лиценцом Apache 2.0 license. Прво издање за продукцију (верзија 1.0) објављено је у марту 2004. године.[1] Верзија 1.2.6 освојила је награду за продуктивност Jolt, али и награду за иновацију године JAX.[2][3] Верзија 4.0 обухвата значајна побољшања, попут подршке за Java SE 8, Groovy 2, неке аспекте Java EE 7 и WebSocket. МодулиSpring Framework је организован у око 20 модула које је могуће појединачно употребљавати у зависности од потреба апликације.
Инверзија контролног контејнераСрж Sping Framework-а је његов инверзијски контролни контејнер (IoC), који помоћу рефлексије пружа доследан начин конфигурисања и управљања објектима на јави. Ова врста контејнера одговорна је за управљање животним циклусом одређених објеката. То подразумева креирање ових објеката, позивање њихових метода иницијализације и њихово конфигурисање. Објекти које је креирао контејнер називају се управљаним објектима. Контејнер се може конфигурисати учитавањем XML-а (енгл. Extensible Markup Language) или помоћу посебних напомена на јави, што подразумева њихово откривање на конфигурационим класама. Оне дефинишу информације које су неопходне за креирање управљаних објеката. Објекти се могу добити претраживањем зависности или убацивањем нових објеката од којих ће зависити.[5] Претраживање зависности је образац где од објекта контејнера позивалац тражи објекат с одређеним именом или одређеним типом. Убризгавање зависности подразумева образац где долази до размене објеката, тј. прослеђивања објеката другим објектима. Оно се може извести помоћу конструктора, пропертија или фабричких метода. Употреба контејнера олакшава конфигурацију и прилагођавање апликације. Међутим, у многим случајевима није неопходна употреба кад се употребљавају други делови Spring Framework-а. Spring-ов контејнер пружа доследан механизам за конфигурисање апликација и интегрише се с готово свим Јава окружењима, од малих апликација до великих пословних апликација. Контејнер се може претворити у делимично усклађен EJB-ом 3.0 .Програмер не креира директно објекат, већ описује како би требало бити креиран, дефинишући га у Спринг конфигурацијској датотеци. Слично томе, услуге и компоненте се не позивају директно; уместо тога Спринг конфигурациона датотека дефинише које се услуге и компоненте морају позвати. Циљ тог IoC-а је повећање једноставности одржавања и тестирања. Аспектно-оријентисано програмирањеSpring Framework има сопствени оквир за аспектно-оријентисано програмирање који модулира међусекторксе проблеме у аспектима.Мотивација за стварање засебног AOP оквира потиче из уверења да би требало омогућити пружање основних AOP функција без превише сложености у дизајну, имплементацији или конфигурацији.Овај оквир је заснован на proxy pattern и конфигуран је за време извођења. Ово дозвољава сано јавно извршавање метода на постојећим објектима на тачки спајања. У поређењу са AspectJ оквиром, горе поменути спринг је мање моћан, али уједно и мање компликован. Спринг 1.2 укључује подршку за конфигурисање AspectJ аспеката у контејнеру. Спринг 2.0 је додао још интеграција, на пример pointcut се може поново користити и може се мешати са аспектима заснованим на Спринг AOP-у. Затим, Спринг 2.0 је додао нову аспектну библиотеку која користи AspectJ за пружање заједничких Спринг функција, као што су декларативно управљање трансакцијама о убризгавање зависности. Спринг AOP је осмишљен тако да може да ради са унакрсним проблемима унутар Spring Framework-а. Сваки објекат који је креиран и конфигурисан у контејнеру може се обогатити помоћу Спринг AOP-а. Spring Framework интерно користи Спринг AOP за управљање трансакцијама, сигурност, даљински приступ и JMX. Од верзије 2.0 оквира, Спринг нуди два приступа конфигурацији AOP-а: <beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
Окврир за приступ подацимаМодул за приступ и интеграцију података (Data Access/Integration) јест слој апликације који служи за управљање подацима који се налазе у систему датотека или базама података. Подршка је обезбеђена за све популарне оквире за приступ подацима у Јави: JDBC, iBatis/MyBatis, Hibernate, Java Data Objects (JDO, укинуто од 5.х), Java Persistence API (JPA), Oracle TopLink, Apache OJB и Apache Cayenne. Функције које Spring пружа:
Све ове функције постају доступне када користите класе шаблона које нуди Спринг за сваки подржани оквир.Спринг Фрамеворк је једини оквир доступан у Јави који нуди управљана окружења за приступ подацима изван сервера апликација или контејнера.[8] Управљање трансакцијамаСпрингов оквир за управљање трансакцијама доноси механизам апстракције на Јава платоформи. Његова трансакција је способа за:
Java Transaction API (JTA) подржава само угњежђене трансакције и глобалне трансакције и захтева сервер апликација (а у неким случајевима и примену апликација на серверу апликација). Оквир пружа два начина додавања управљања трансакцијама:
Модел-поглед-контролерМодел-поглед-контролер представња оквир за веб апликације, који првобитно није био планиран. Спрингови програмери су одлучили да напишу сопствени веб оквир као реакцију на оно што су тада сматрали лошим дизајном доступних оквира.[9] Посебно су сматрали да постоји недовољно раздвајање између слојева за презентацију и руковање захтевима, и између слоја за руковање захтевима модела.[10] Спринг је оквир заснован на захтевима. Оквир дефинише стратешке интерфејсе за све.одговорности са којима мора да се носи савремени оквир заснован на захтевима. Циљ сваког интефејса је да буде једноставан и јасан како би сви корисници могли да напишу сопствене имплементације. MVC отвара пут за чистији код. Сви интерфејси су чврсто везани за Servlet API. Најважнији интерфејси које дефинише Спринг MVC и њихове одговорности наведени су у наставку:
Сваки горе наведени интерфејс има важну одговорност у укупном оквиру. Спринг MVC се испоручује са имплементацијама свих ових интерфејса и заједно нуди скуп функција на врху Servlet API . Међутим, програмери могу слободно писати друге имплементације. Предност високог нивоа апстракције коју нуди Спринг MVC јест једноставност тестирања имплементација тих интерфејса. Ток рада Спринг MVCКада корисник кликне на везу или пошаље образац свом веб прегледачу, захтев иде на Спринг DispatcherServlet. Он консултује једно или више мапирања, изабран је као одговарајући контролор и прослеђује захтев. Контролер обрађује одређени захтев и генерише резултат. Ове информације је потребно форматирати у html- у или било којој технологији попут JSP-а. Када контролер није повезан са одређеним приказом, DispatcherServlet проналази стварни JSP уз помоћ ViewResolver. Конфигурација DispatcherServlet-аМора бити конфигурисан у web.xml <servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/<url-pattern>
</servlet-mapping>
Оквир за управљање на даљинуОквир за даљински приступ је апстракција за рад са различитим технологијама заснованим удаљеним позивима процедура доступним на Јава платформи и за повезивање клијената и за разврставање објеката на серверима. Најважнија карактеристика коју нуди овај оквир је олакшавање конфигурације и употребе ових технологија што је више могуће комбиновањем инверзије контроле и AOP-а. Оквир омогућава аутоматскос поновно повезивање након прекида везе. Спринг пружа подршку за ове протоколе и производе:
Apache CXF пружа интеграцију са Spring Framework-ом за извоз објеката у стилу RPC-а на страни сервера. Брзи развој апликација преко конвенцијеSpring BootSpring Boot је Спрингово решење за конфигурацију преко конвенције за креирање самосталних апликација заснованих на Спрингу, које можете " покренути ".[11]Већини Spring Boot апликација је потребно врло мало Спринг конфигурације. Кључне карактеристике:
Spring RooSpring Roo је пројекат заједнице који нуди алтернативни приступ заснован на генерисању кода при коришћењу конфигурације преко конвенције за брзу израду апликација у Јави. Тренутно подржава Spring Security и Spring Web Flow . Разликује се од других оквира за брзи развој апликација фокусирањем на:
Batch оквирSpring Batch је оквир за пакетну обраду који пружа функције за вишекратну употребу које су неопходне за обраду великих количина запис, укључујући:
Такође пружа напредније техничке услуге и функције које ће омогућити оптимизацију и технике партиционисања серијских послова изузетно великог обима и високих перформанси. Spring Batch извршава низ послова; посао се састоји од много корака, а сваки корак се састоји од задатка ЧИТАЊЕ-ОБРАДА-ПИСАЊЕ . Процес „ЧИТАЊЕ-ОБРАДА-ПИСАЊЕ” се састоји од ових корака: „читање” података из ресурса, „обрада” затим „уписивање” у друге ресурсе. На пример, могу се прочитати податке из CSV датотеке, затим обрадити их, а касније и уписати у базу података. Појединачни оперативни задатак представља могућност да се ради само један задатак, као што је чишћење ресурса пре или након покретања. Кораци се могу повезати заједно да би се изводили као посао. Оквир интеграцијеСпринг интеграције је оквир који пружа функције за вишекратну употребу неопходне за слање порука или архитектуре засноване на догађајима.
Референце
|
Portal di Ensiklopedia Dunia