Көктем шеңбері - Spring Framework

Көктем шеңбері
Spring Framework Logo 2018.svg
ӘзірлеушілерЖеке бағдарламалық жасақтама
Бастапқы шығарылым1 қазан 2002; 18 жыл бұрын (2002-10-01)
Тұрақты шығарылым
5.3.1 / 10 қараша 2020 ж; 17 күн бұрын (2020-11-10)[1]
Алдын ала қарау
5.3.0-RC2 / 14 қазан 2020 ж; 44 күн бұрын (2020-10-14)[2]
РепозиторийКөктемгі репозиторий
ЖазылғанJava
ПлатформаJava EE
ТүріҚолдану негіздері
ЛицензияApache лицензиясы 2.0
Веб-сайткөктем.io

The Көктем шеңбері болып табылады қолдану шеңбері және басқарудың инверсиясы контейнер үшін Java платформасы. Фреймворктің негізгі мүмкіндіктерін кез-келген Java қосымшасы қолдана алады, бірақ веб-қосымшаларды құрудың кеңейтімдері бар Java EE (Enterprise Edition) платформасы. Дегенмен, фреймворк белгілі бір ерекшелікті жүктемейді бағдарламалау моделі, бұл Java қауымдастығына қосымша ретінде танымал болды Кәсіпорынның JavaBeans (EJB) моделі. Көктем шеңбері ашық ақпарат көзі.

Нұсқа тарихы

НұсқаКүніЕскертулер
0.92002
1.02003
2.02006
3.02009
4.02013
5.02017

Бірінші нұсқасы жазылған Род Джонсон, оның кітабын шығарумен бірге рамка шығарды Сарапшы жеке-дара J2EE жобалау және әзірлеу 2002 жылдың қазанында. Рамка алғаш рет Apache 2.0 лицензиясы 2003 жылдың маусымында. Бірінші кезеңнің алғашқы шығарылымы 1.0, 2004 жылдың наурызында, 2004 жылдың қыркүйегінде және 2005 жылдың наурызында одан әрі маңызды релиздермен шығарылды. Көктемгі 1.2.6 шеңбері жеңіске жетті Jolt өнімділігі марапаты және а JAX (Java API for XML) Innovation Award 2006 жылы.[3][4] Spring 2.0 2006 жылдың қазанында, 2.5 көктемі 2007 жылдың қарашасында, 3.0 көктемі 2009 жылдың желтоқсанында, 3.1 көктемі 2011 жылдың желтоқсанында және 3.2.5 көктемі 2013 жылдың қарашасында шығарылды.[5] Spring Framework 4.0 2013 жылдың желтоқсанында шығарылды.[6] Көктем 4.0-дегі елеулі жақсартулар Java SE (Standard Edition) 8-ге қолдау көрсетті, Groovy 2, Java EE 7 кейбір аспектілері және WebSocket.

Spring Framework 4.2.0 2015 жылдың 31 шілдесінде шығарылды және дереу 4.2.1 нұсқасына жаңартылды, ол 2015 жылдың 1 қыркүйегінде шығарылды.[7] Бұл «Java 6, 7 және 8-мен үйлесімді, негізгі жетілдірулерге және заманауи веб-мүмкіндіктерге назар аудара отырып».[8]

Spring Framework 4.3 2016 жылдың 10 маусымында шығарылды және 2020 жылға дейін қолдау көрсетілетін болады.[9] Ол «Spring 4 жүйесінің жалпы талаптары (Java 6+, Servlet 2.5+) шеңберіндегі соңғы буын болады, [...]».[10]

5 көктемі салынады деп жарияланды Реактивті ағындар үйлесімді реактор өзегі.[11]

Модульдер

Spring Framework бірқатар қызметтер ұсынатын бірнеше модульдерді қамтиды:

Басқару контейнерінің инверсиясы (тәуелділік инъекциясы)

Көктем шеңберіне орталық болып табылады басқарудың инверсиясы (IoC) контейнері, ол Java нысандарын пайдалану арқылы басқарудың және баптаудың дәйекті құралын ұсынады шағылысу. Контейнер басқаруға жауапты объектінің өмірлік циклдары нақты объектілер: осы объектілерді құру, оларды инициализациялау әдістерін шақыру және оларды біріктіру арқылы осы объектілерді конфигурациялау.

Контейнер жасаған объектілерді басқарылатын объектілер деп те атайды атбас бұршақтар. Контейнерді жүктеу арқылы конфигурациялауға болады XML (Белгіленетін кеңейту тілі) файлдары немесе белгілі бірін анықтау Java аннотациялары конфигурация сыныптары туралы. Бұл деректер көздері бұршақты құруға қажетті ақпаратты беретін бұршақ анықтамаларын қамтиды.

Нысандарды тәуелділікті іздеу немесе тәуелділік инъекциясы арқылы алуға болады.[13] Тәуелділікті іздеу - бұл қоңырау шалушы контейнер объектісінен нақты атауы бар немесе белгілі бір типтегі объектіні сұрайтын үлгі. Тәуелділікті айдау - бұл контейнер нысандарды атауы бойынша басқа объектілерге кез-келген арқылы өткізетін үлгі құрылысшылар, қасиеттері, немесе зауыттық әдістер.

Көп жағдайда көктемгі шеңбердің басқа бөліктерін қолданған кезде контейнерді пайдаланудың қажеті жоқ, бірақ оны қолдану бағдарламаны конфигурациялауды және теңшеуді жеңілдетеді. Spring контейнері қосымшаларды конфигурациялаудың дәйекті механизмін ұсынады және барлық кішігірім қосымшалардан бастап ірі корпоративті қосымшаларға дейінгі барлық Java орталарымен біріктіріледі.

Контейнерді ішінара сәйкестендіруге болады EJB (Enterprise JavaBeans) 3.0 Pitchfork жобасы арқылы контейнер. Кейбіреулер[ДДСҰ? ] стандарттарды сақтамағаны үшін көктем шеңберін сынға алыңыз.[14] Алайда, SpringSource EJB 3 сәйкестігін басты мақсат деп санамайды және Spring Framework пен контейнер бағдарламалаудың қуатты модельдеріне мүмкіндік береді деп мәлімдейді.[15]Бағдарламалаушы тікелей объектіні жасамайды, бірақ оны қалай жасау керектігін оны Spring конфигурация файлында анықтай отырып сипаттайды. Сол сияқты қызметтер мен компоненттер тікелей шақырылмайды; оның орнына Spring конфигурациясы қандай қызметтер мен компоненттерді шақыру керектігін анықтайды. Бұл IoC техникалық қызмет көрсету мен тестілеудің қарапайымдылығын арттыруға арналған.

Бағдарламалаудың аспектілі құрылымы

Көктем шеңберінің өзіндік ерекшелігі бар Аспект-бағытталған бағдарламалау (AOP) шеңберіндегі өзара байланысты мәселелерді модульдейтін құрылым аспектілері. AOP жеке құрылымын құру мотиві жобалау, енгізу немесе конфигурациялау кезінде аса күрделі емес негізгі AOP функцияларын ұсыну мүмкіндігі болуы керек деген сенімнен туындайды. Spring AOP құрылымы сонымен қатар Spring контейнерінің барлық артықшылықтарын пайдаланады.

Көктемгі AOP шеңбері болып табылады прокси үлгісіне негізделген, және теңшелген жұмыс уақыты. Бұл компиляция кезеңі немесе жүктеме кезінде тоқу қажеттілігін жояды. Екінші жағынан, ұстап алу а-да бар объектілерде жалпы әдісті орындауға мүмкіндік береді қосылу нүктесі.

Салыстырғанда AspectJ жақтау, көктемгі AOP аз қуатты, бірақ сонымен бірге онша күрделі емес. 1.2 көктемінде контейнердегі AspectJ аспектілерін конфигурациялауға арналған қолдау бар. Spring 2.0 AspectJ-мен көбірек интеграция қосылды; мысалы, нүкте тіл қайта қолданылады және оны көктемгі AOP-ға негізделген аспектілермен араластыруға болады. Бұдан әрі Spring 2.0, AspectJ-ті декларативті транзакцияны басқару және AspectJ компиляция уақыты немесе жүктеме уақытында тоқу арқылы тәуелділікті енгізу сияқты жалпы сипаттамаларын ұсыну үшін AspectJ пайдаланатын Spring Aspects кітапханасын қосты. SpringSource сонымен қатар AspectJ AOP-ны Spring Roo және Spring Insight сияқты басқа көктем жобаларында қолданады, сонымен бірге Spring Security аспект кітапханасын AspectJ-ке негізделген.

Көктемгі AOP серіппелі шеңбердің қиылысқан мәселелерімен жұмыс істей алатындай етіп жасалған. Контейнер құрған және конфигурациялаған кез-келген нысанды Spring AOP көмегімен байытуға болады.

Spring Framework транзакцияны басқару, қауіпсіздік, қашықтықтан қол жеткізу және JMX.

Framework 2.0 нұсқасынан бастап Spring AOP конфигурациясына екі тәсілді ұсынады:

  • схемаға негізделген тәсіл[16] және
  • @ AspectJ негізіндегі аннотация стилі.[17]
<бұршақ 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: контекст =«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 «>

Spring командасы AOP-қа қатысты жаңа терминологияны енгізбеуге шешім қабылдады; сондықтан, көктемгі анықтамалық құжаттамада және API-де, мысалы аспект, қосылу нүктесі, кеңес, сілтеме, кіріспе, мақсатты нысан (кеңес берілетін объект ), AOP прокси-сервері және тоқудың барлығы басқа AOP шеңберлеріндегідей мағыналарға ие (әсіресе AspectJ).

Деректерге қол жетімділік шеңбері

Көктемгі деректерге қол жетімділік құрылымы қосымшалардағы мәліметтер базасымен жұмыс жасау кезінде әзірлеушілер кездесетін жалпы қиындықтарды шешеді. Java-да деректерге қол жетімділіктің барлық танымал шеңберлеріне қолдау көрсетіледі: JDBC, iBatis /MyBatis, Ұйықтау, Java деректер нысандары (JDO, 5.x бастап тоқтатылған), Java Persistence API (JPA), Oracle TopLink, Apache OJB, және Apache Cayenne, басқалардың арасында.

Осы барлық қолдау көрсетілетін құрылымдар үшін көктем осы мүмкіндіктерді ұсынады

  • Ресурстарды басқару - дерекқордың ресурстарын автоматты түрде алу және шығару
  • Ерекшеліктермен жұмыс - деректерге қол жетімділікке қатысты ерекшелікті көктемгі деректерге қол жеткізу иерархиясына аудару
  • Транзакцияға қатысу - жүргізіліп жатқан транзакцияларға ашық қатысу
  • Ресурстарды босату - деректер қорының объектілерін байланыс пулының қаптамаларынан алу
  • Үшін абстракциялау екілік үлкен объект (BLOB) және сипаттағы үлкен объект (CLOB) өңдеу

Осы мүмкіндіктердің барлығы пайдалану кезінде қол жетімді болады шаблон сабақтары әрбір қолдау көрсетілетін негізге көктеммен қамтамасыз етілген. Сыншылар бұл шаблон кластары интрузивті және Hibernate API-ді тікелей пайдаланудан артықшылық бермейді дейді (мысалы).[18][тексеру сәтсіз аяқталды ] Бұған жауап ретінде Көктемді әзірлеушілер қазір күту және JPA API интерфейстерін тікелей пайдалануға мүмкіндік берді. Бұл үшін транзакцияның мөлдір басқарылуы қажет, өйткені қолданба коды бұдан әрі дерекқор ресурстарын алу және жабу жауапкершілігін қабылдамайды және ерекше аударманы қолдамайды.

Spring-транзакцияларды басқарумен бірге оның деректерге қол жеткізу шеңбері деректерге қол жеткізу рамкаларымен жұмыс істеу үшін икемді абстракцияны ұсынады. Spring Framework жалпыға қол жетімді API ұсынбайды; оның орнына қолдау көрсетілетін API-дің толық қуаты өзгеріссіз қалады. Spring Framework - бұл бағдарлама серверінен немесе контейнерден тыс басқарылатын деректерге қол жеткізу орталарын ұсынатын Java-да қол жетімді жалғыз негіз.[19]

Көктемді күту режимімен транзакцияны басқару үшін пайдалану кезінде келесі бұршақтарды конфигурациялау қажет болуы мүмкін:

  • A Деректер көзі сияқты com.mchange.v2.c3p0.ComboPooledDataSource немесе org.apache.commons.dbcp.BasicDataSource
  • SessionFactory ұнайды org.springframework.orm.hibernate3.LocalSessionFactoryBean DataSource атрибутымен
  • Ұйқы күйінің сипаттары org.springframework.boans.factory.config.PripertiesFactoryBan
  • TransactionManager ұнайды org.springframework.orm.hibernate3.HibernateTransactionManager SessionFactory атрибутымен

Конфигурацияның басқа пункттеріне мыналар кіреді:

  • Кесу нүктелерінің AOP конфигурациясы.
  • AOP кеңесінің транзакция семантикасы[нақтылау ].

Транзакцияны басқару

Көктемдегі транзакцияны басқару жүйесі Java платформасына абстракция механизмін ұсынады. Оның абстракциясы:

Салыстырмалы түрде Java Transaction API (JTA) тек кірістірілген транзакциялар мен жаһандық транзакцияларды қолдайды және қолданбалы серверді қажет етеді (және кейбір жағдайларда қолданбалы бағдарламада қолданбаларды орналастыру керек).

Spring Framework PlatformTransactionManager-ді транзакцияны басқарудың бірқатар стратегиялары үшін ұсынады:

  • JDBC қосылымында басқарылатын транзакциялар
  • Жұмыс бірліктерінің объектілік-реляциялық картасында басқарылатын транзакциялар
  • JTA TransactionManager және UserTransaction арқылы басқарылатын транзакциялар
  • Сияқты басқа ресурстармен басқарылатын транзакциялар объект мәліметтер базасы

Осы абстракция механизмінің қасында рамка қосымшаға транзакцияны басқаруды қосудың екі әдісін ұсынады:

  • Бағдарламалық түрде, Spring's TransactionTemplate қолдану арқылы
  • Пайдалану арқылы конфигуративті метадеректер XML немесе Java аннотациялары сияқты (@Transactional және т.б.)

Spring-тің транзакцияларды басқару шеңберін біріктіретін деректерге қол жеткізу шеңберімен бірге JTA-ға немесе сенбестен конфигурация арқылы транзакциялық жүйені құруға болады. EJB. Транзакциялық жүйе хабарламалармен және кэштеу қозғалтқыштар.

Model-view - контроллердің құрылымы

Juergen Hoeller ұсынған көктемгі MVC / Web реактивті презентациясы

Көктем шеңберінің өзіндік ерекшеліктері бар модель - көрініс - контроллер (MVC) қосымшаның веб-жүйесі, бұл бастапқыда жоспарланбаған. Көктемді әзірлеушілер өздерінің веб-фреймерлерін (сол кездегі) танымал дизайнның нашар дизайны ретінде қабылдаған реакция ретінде жазуға шешім қабылдады. Джакарта Веб-құрылым,[20] сондай-ақ басқа қол жетімді құрылымдардағы кемшіліктер. Атап айтқанда, олар презентация мен сұранысты өңдеу қабаттары мен сұраныстарды өңдеу қабаты мен модель арасында жеткіліксіз алшақтық бар деп санады.[21]

Struts сияқты, Spring MVC - бұл сұранысқа негізделген құрылым. Рамка анықтайды стратегия заманауи сұраныстарға негізделген құрылыммен шешілуі керек барлық жауапкершіліктер үшін интерфейстер. Әрбір интерфейстің мақсаты қарапайым және түсінікті болу керек, сондықтан Spring MVC қолданушылары өз қалауынша өздері іске асыруды жаза алады. MVC алдыңғы таза кодқа жол ашады. Барлық интерфейстер Servlet API. Servlet API-мен тығыз байланыстыруды кейбіреулер көктемгі әзірлеушілердің вебке негізделген қосымшалар үшін жоғары деңгейлі абстракцияны ұсына алмауы деп санайды.[дәйексөз қажет ]. Алайда, бұл қосылыс Servlet API мүмкіндіктерінің әзірлеушілер үшін қол жетімді екендігіне көз жеткізеді, сонымен бірге онымен жұмысты жеңілдету үшін жоғары абстракциялық құрылым ұсынады.

DispatcherServlet класы болып табылады алдыңғы контроллер[22] және функциялардың орындалуы кезеңінде әр түрлі интерфейстерге басқаруды беруге жауапты HTTP сұрауы.

Spring MVC анықтаған маңызды интерфейстер және олардың міндеттері төменде келтірілген:

  • Контроллер: келіп түскен сұраныстарды басқару және дұрыс жауапқа бағыттау үшін Модель мен Көрініс арасында болады. Контроллер http сұрауын сәйкес әдістермен салыстырады. Ол кіріс ақпаратын бағыттайтын қақпа қызметін атқарады. Ол модельге немесе көрініске ауысады.
  • HandlerAdapter: кіріс сұраныстарды өңдейтін объектілерді орындау
  • HandlerInterceptor: кіретін сұраныстарды ұстап қалу салыстырмалы, бірақ Servlet сүзгілеріне тең емес (қолдану міндетті емес және DispatcherServlet бақыланбайды).
  • HandlerMapping: кез-келген атрибутқа немесе сол сұрауларға ішкі немесе сыртқы шартқа негізделген кіріс сұраныстарды өңдейтін объектілерді таңдау (өңдеушілер).
  • LocaleResolver: шешімді және қалау бойынша сақтау жергілікті жеке пайдаланушының
  • MultipartResolver: келіп түскен сұраныстарды орау арқылы файлдарды жүктеп салумен жұмыс істеуді жеңілдету
  • Көру: клиентке жауап қайтаруға жауапты. Кейбір сұраныстар модель бөлігіне өтпестен тікелей қарауға кетуі мүмкін; басқалары үшеуінен өтуі мүмкін.
  • ViewResolver: көріністің логикалық атына негізделген көріністі таңдау (пайдалану қатаң талап етілмейді)

Жоғарыдағы әрбір стратегия интерфейсі жалпы негізде маңызды жауапкершілікке ие. Осы интерфейстер ұсынған абстракциялар қуатты, сондықтан оларды іске асырудағы вариациялар жиынтығын қамтамасыз ету үшін Spring MVC барлық осы интерфейстерді іске асырумен бірге жеткізіледі және бірге сервлет API-нің жоғарғы жағында функция ұсынады. Алайда, әзірлеушілер мен сатушылар басқа іске асыруды жаза алады. Spring MVC Java-ны қолданады java.util.Map интерфейс кілттер жол мәндері болуы күтілетін модельге арналған деректерге негізделген абстракция ретінде.

Осы интерфейстердің орындалуын сынаудың қарапайымдылығы Spring MVC ұсынған абстракцияның жоғары деңгейінің маңызды артықшылығы болып көрінеді. DispatcherServlet қосымшалардың веб-қабаттарын конфигурациялауға арналған басқару контейнерінің көктемгі инверсиясымен тығыз байланысты. Алайда веб-қосымшалар Spring Framework-тің басқа бөліктерін, соның ішінде контейнерді де қолдана алады және Spring MVC-ді пайдаланбауды таңдайды.

Spring MVC жұмыс процесі

Пайдаланушы сілтемені басқанда немесе веб-шолғышта форманы жібергенде, сұраныс Spring DispatcherServlet жіберіледі. DispatcherServlet - MVC серіппесіндегі фронт-контроллер. Ол бір немесе бірнеше өңдеушілерді бейнелеуге кеңес береді. DispatcherServlet сәйкес контроллер ретінде таңдалды және оған сұранысты жібереді. Контроллер нақты сұранысты өңдейді және нәтиже шығарады. Ол модель ретінде белгілі. Бұл ақпарат HTML түрінде немесе JSP сияқты кез-келген алдыңғы технологиямен пішімделуі керек. Бұл қолданбаның көрінісі. Барлық ақпарат MODEL AND VIEW объектісінде. Контроллер белгілі бір көрініске қосылмаған кезде, DispatcherServlet нақты JSP-ді ViewResolver көмегімен табады.

DispatcherServlet теңшелімі

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>

Қашықтан қол жеткізу шеңбері

Көктемнің қашықтан қол жетімділігі - бұл әртүрлі RPC-мен жұмыс істеуге арналған абстракция (қашықтағы процедураны шақыру ) клиенттің қосылымы үшін де, серверлердегі объектілерді маршалдау үшін де Java платформасында қол жетімді технологиялар. Осы құрылым ұсынатын ең маңызды ерекшелік - басқару мен AOP инверсиясын біріктіру арқылы осы технологиялардың конфигурациясы мен қолданылуын барынша жеңілдету.

Сондай-ақ, рамка ақауларды қалпына келтіруді (байланыс үзілгеннен кейін автоматты түрде қайта қосуды) және EJB қашықтан басқару пультін клиенттік жағынан пайдалану үшін кейбір оңтайландыруларды қамтамасыз етеді. азаматтығы жоқ сессия бұршақтары.

Көктем осы хаттамалар мен өнімдерге қолдау көрсетеді

  • HTTP негізіндегі протоколдар
    • Гессиан: екілік сериялау протоколы, ашық және қолдау көрсетілетін CORBA - негізделген хаттамалар
    • RMI (1): көктемге тән RMI инфрақұрылымын қолданатын әдіс шақырулар
    • RMI (2): RMI интерфейстерін қолдана отырып, әдеттегі RMI қолданысына сәйкес келетін шақырулар
    • RMI-IIOP (CORBA ): RMI-IIOP / CORBA қолдану әдісі бойынша шақырулар
  • Кәсіпорын JavaBean клиенттің интеграциясы
    • Жергілікті EJB азаматтығы жоқ сеанс бұршағының қосылымы: жергілікті азаматтығы жоқ сеанс бұршағына қосылу
    • Қашықтағы EJB азаматтығы жоқ сеанс бұршағының қосылымы: қашықтықтағы азаматтығы жоқ сеанстарға қосылу
  • Сабын
    • -Мен интеграциялау Apache осі Веб-қызметтер негіздері

Apache CXF сервер жағындағы объектілерді RPC стилінде экспорттауға арналған Spring Framework-пен интеграцияны қамтамасыз етеді.

Клиенттің де, сервердің де барлық RPC стиліндегі протоколдары мен Spring Remote қол жетімділік шеңберінде қолдау көрсетілетін өнімдерге арналған (Apache Axis қолдауынан басқа) Spring Core контейнерінде конфигурацияланған.

Әр түрлі қашықтықтан басқару схемаларын қолдауға арналған (1-1, 1-көп, динамикалық қызметтерді анықтайтын) көктемгі шеңберге енгізілген қашықтағы ішкі жүйенің баламалы бастапқы көзі (Cluster4Spring) бар ...

Конвенциядан тыс конфигурацияны жылдам қолдану

Көктемгі жүктеу

Көктемгі етік - бұл Көктемдікі артық конфигурация «жай ғана іске қосуға» болатын, көктемге негізделген жеке, өндірістік деңгейдегі қосымшаларды құру шешімі.[23] Ол Spring командасының ең жақсы конфигурация және «Spring» платформасын және үшінші тарап кітапханаларын пайдалану туралы «пікірлерімен» алдын-ала жасалған, сондықтан сіз ең аз әбігерге кірісе аласыз. Spring Boot қосымшаларының көпшілігі көктемгі конфигурацияны өте аз қажет етеді. Мүмкіндіктер:

  • Көктемнің қосымша қосымшаларын жасаңыз
  • Tomcat немесе Джетти тікелей (орналастырудың қажеті жоқ СОҒЫС файлдар)
  • Пікірленген «стартерді» беру Жоба нысандарының модельдері Maven конфигурациясын жеңілдету үшін (POM)
  • Мүмкіндігінше көктемді автоматты түрде теңшеңіз
  • Сияқты өндіріске дайын мүмкіндіктерді қамтамасыз етіңіз көрсеткіштер, медициналық тексерулер және сыртқы конфигурация
  • Кодты генерациялау мүлдем жоқ және XML конфигурациясына қажеттілік жоқ.

Көктемгі Ру

Spring Roo - бұл қосымшаларды жылдам құру үшін конфигурациядан тыс конфигурацияны пайдалану кезінде кодты қалыптастырудың баламалы әдісін ұсынатын қоғамдық жоба. Java. Қазіргі уақытта ол Spring Framework, Spring Security және Көктемгі веб-ағым. Ру басқаларынан ерекшеленеді қосымшаны жылдам әзірлеу шеңберлер:

  • Кеңейту мүмкіндігі (қондырмалар арқылы)
  • Java платформасының өнімділігі (басқа тілдерге қарағанда)
  • Құлыптан аулақ болу (Roo кез-келген қолданбадан бірнеше минут ішінде жойылуы мүмкін)
  • Жұмыс уақытын болдырмау (орналастырудың артықшылықтарымен байланысты)
  • Пайдалану мүмкіндігі (әсіресе қабықшаның ерекшеліктері мен пайдалану үлгілері арқылы)

Топтамалық құрылым

Көктемгі партия үшін негіз болып табылады пакеттік өңдеу бұл үлкен көлемдегі жазбаларды өңдеу үшін маңызды болып табылатын қайта пайдалануға болатын функцияларды ұсынады, соның ішінде:

  • тіркеу / бақылау
  • транзакцияны басқару
  • жұмысты өңдеу статистикасы
  • жұмысты қайта бастау

Ол сондай-ақ жетілдірілген техникалық қызметтер мен мүмкіндіктерді ұсынады, бұл оптимизация және бөлу әдістері арқылы өте жоғары көлемді және өнімділігі жоғары жұмыс орындарын қамтамасыз етеді. жұмыс көптеген қадамдардан тұрады және әрбір қадамдар ОҚУ-ПРОЦЕСС-ЖАЗУ тапсырмасынан немесе бір операциялық тапсырмадан (тапсырма тапсырмасынан) тұрады.

«ОҚУ-ПРОЦЕСС-ЖАЗУ» процесі келесі қадамдардан тұрады: ресурстардан деректерді «оқу» (үтірмен бөлінген мәндер (CSV), XML немесе дерекқор), оны «өңдеңіз», содан кейін оны басқа ресурстарға (CSV, XML немесе дерекқор) «жазыңыз». Мысалы, қадам CSV файлындағы деректерді оқып, оны өңдеп, дерекқорға жазуы мүмкін. Spring Batch CSV, XML және мәліметтер базасын оқуға / жазуға арналған көптеген сабақтарды ұсынады.

«Жалғыз» операциялық тапсырма үшін (тапсырма таблеткасы) бұл тек қадам басталғанға немесе аяқталғанға дейін немесе аяқталғанға дейін ресурстарды тазарту сияқты жалғыз тапсырманы орындауды білдіреді.

Қадамдарды жұмыс ретінде іске қосу үшін тізбектеуге болады.

Интеграциялық құрылым

Көктемгі интеграция үшін негіз болып табылады Кәсіпорын қосымшаларын біріктіру хабарламалар немесе оқиғаларға негізделген архитектуралар үшін маңызды қайта пайдалануға болатын функцияларды ұсынады.

  • маршрутизаторлар - шарт негізінде хабарламаны хабарлама арнасына бағыттайды
  • трансформаторлар - хабарламаның пайдалы жүктемесін түрлендіреді / өзгертеді / өзгертеді және түрлендірілген пайдалы жүктеме бар жаңа хабарлама жасайды
  • адаптерлер - басқа технологиялармен және жүйелермен (HTTP, AMQP (Хабарламаның кеңейтілген кезек хаттамасы), JMS (Java хабарлама қызметі), XMPP (Кеңейтілген хабарламалар мен қатысу хаттамасы), SMTP (Пошта жіберудің қарапайым хаттамасы), IMAP (Интернет-хабарламаға қол жеткізу хаттамасы), FTP (Файлдарды жіберу хаттамасы), сондай-ақ FTPS /SFTP, файлдық жүйелер және т.б.)
  • сүзгілер - критерийлерге негізделген хабарламаны сүзеді. Егер критерийлер орындалмаса, хабарлама алынып тасталады
  • қызмет активаторлары - қызмет көрсету объектісіне операция жасайды
  • менеджмент және аудит

Көктемгі интеграция құбырлар мен фильтрлерге негізделген сәулеттерді қолдайды.

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ «Шығарылымдар». Алынған 27 қараша 2020.
  2. ^ «Spring Framework 5.3.0-RC2 қазір қол жетімді». Алынған 14 қазан 2020.
  3. ^ Джолт жеңімпаздары 2006 ж
  4. ^ «JAX Innovation Award Gewinner 2006». Архивтелген түпнұсқа 2009-08-17. Алынған 2009-08-12.
  5. ^ «Spring Framework 3.2.5 шығарылды». Ресми көктем сайты. 7 қараша 2013. Алынған 16 қазан 2016.
  6. ^ SpringSource.org
  7. ^ Көктемнің ресми блогы
  8. ^ Көктемнің ресми блогы
  9. ^ Көктемгі шығарылым блогы
  10. ^ Көктемнің ресми блогы
  11. ^ Реактивті көктем
  12. ^ Негізгі контейнерге арналған көктемгі рамалық құжаттама
  13. ^ Depencylookup пен тәуелділік инъекциясы арасындағы айырмашылық неде - Көктем форумы. Forum.springsource.org (2009-10-28). 2013-11-24 аралығында алынды.
  14. ^ Көктем VS EJB3
  15. ^ «Pitchfork» сұрақ-жауаптары. Алынған 2006-06-06.
  16. ^ Көктемгі AOP XML конфигурациясы
  17. ^ AspectJ аннотация конфигурациясы
  18. ^ VS көктемін күту
  19. ^ «Сұрақтарды абстракциялауға арналған JPA жазғы деректері». Алынған 2018-02-06.
  20. ^ Көктем шеңберімен таныстыру
  21. ^ Джонсон, J2EE жобалау және әзірлеу бойынша сарапшы, Ч. 12. және т.б.
  22. ^ Кәсіпорынның қолданбалы архитектурасының үлгілері: Алдыңғы контроллер
  23. ^ Көктемгі жүктеу

Библиография

Сыртқы сілтемелер