Көктемгі Ру - Spring Roo - Wikipedia

Көктемгі Ру
Логотип SpringRoo.png
Spring Roo 2.0.x
Spring Roo 2.0.x
ӘзірлеушілерДИСИД, Жеке бағдарламалық жасақтама
Тұрақты шығарылым
1.3.2 / 2015 жылғы 1 қыркүйек (2015-09-01)
Алдын ала қарау
2.0.0.РЕЛИЗ / 30 қыркүйек, 2019 жыл (2019-09-30)
ЖазылғанJava
ПлатформаJava SE
ТүріҚосымшаны жылдам әзірлеу
ЛицензияApache лицензиясы 2.0
Веб-сайтжобалар.көктем.io/ spring-roo/

Көктемгі Ру болып табылады ашық көзі қолданатын бағдарламалық құрал артық конфигурация қамтамасыз ету принциптері қосымшаны жылдам әзірлеу туралы Java - негізделген корпоративті бағдарламалық жасақтама.[1] Алынған қосымшалар сияқты жалпы Java технологияларын қолданады Көктем шеңбері, Java Persistence API, Тимофель, Apache Maven және AspectJ.[2] Spring Roo мүшесі Көктем жобалар портфолиосы.

Мотивация және тарих

Spring Roo миссиясының мақсаты: «инженерлік тұтастыққа немесе икемділікке нұқсан келтірмей, Java әзірлеушілерінің өнімділігін түбегейлі жақсарту».[3]

Технология алғаш рет 2009 жылғы 27 сәуірде өткен SpringOne Europe әзірлеушілер конференциясының ашылуында, алғашқы альфа-релизімен қатар шығарылды. Негізгі конференция барысында қосымшалар тікелей эфирде құрастырылды, оны конференция қатысушылары жобаның таңдаулы атауына дауыс беру үшін қолдана алады (ол кезде «Roo» деген кодпен аталды) SpringSource ).[4] Сайып келгенде, «Көктемгі Роо» атауы Spring Boost, Spring Spark, Spring HyperDrive және Spring Dart сияқты альтернативаларға қарағанда артықшылықты болды.[5]

Бұдан кейін бірнеше шығарылым,[6][7] Roo 1.0.0.RELEASE көмегімен (жалпы қол жетімділік ) 2009 жылдың желтоқсанында шығарылды. 2010 жылдың қазанында Spring Roo 1.1.0.RELEASE шығарылды. 1.1.0 шығарылымы OSGi іргетасына көшіп, қосымша іздеу моделімен, сонымен қатар қосымша дерекқордың кері инженериясына қолдау, Spring MVC парағының күрделілігін төмендету, Google Web Toolkit, Google App Engine, Apache Solr, JSON және серияланатын сияқты кішігірім мүмкіндіктерге көшті. автоматтандыру.[8] Қазіргі Roo жобасының инженерлері SpringSource-те жұмыс істейді, сондықтан Roo шығарылымдары, әдетте, басқа шығарылымдардың соңғы шығарылымдарын қолдайды. Көктем портфолио жобалары.

2014 жылы ДИСИД Pivotal компаниясымен серіктестік келісімінен кейін Spring Roo ашық көзінің негізін басқарады, олар Spring Roo жобасын әрі қарай дамыту бойынша ынтымақтасады. Roo RAD шеңберінің код-ген стилін ұсыну мақсатын жалғастырады.

Spring Roo жобасы дәл қазіргі лицензиялау саясатын сақтай отырып, Spring-тегі ашық бастапқы жоба ретінде қалады. Pivotal да, DISID де көктем мен Java қауымдастығын жобада ынтымақтастық орнатқысы келетін кез-келген адамға шақырады.

Стандарттар мен технологиялардың үйлесімділігі

Roo әдепкі қондырғысы келесі стандарттар мен негізгі технологияларға сәйкес қосымшаларды құруды жеңілдетеді:[9]

Жоғарыда келтірілген тізімді Roo әдісін беретін қосымша Roo қосымшалары арқылы толықтыруға болады кеңейту.

Пайдаланушы интерфейсі

Spring Roo негізгі пайдаланушы интерфейсі - командалық жол қабық. Қабық а командалық интерфейс сонымен қатар орналастыру механизмі плагиндер (олар Roo-да «қондырмалар» деп аталады). Roo жобалаудың басты мақсаты - пайдаланушының жұмысын «табиғи жолмен» жалғастыра беруін қамтамасыз ету, бұл әдетте өз қалауымен пайдалануды білдіреді интеграцияланған даму ортасы (IDE) немесе мәтіндік редактор көптеген тапсырмалар үшін. Мұндай Roo жеке терезеде IDE немесе мәтіндік редакторға жиі жүктеледі және пайдаланушы Roo-дан тыс жасаған файлдық жүйені өзгертеді. Roo жұмыс істемей тұрған кездегі қандай да бір өзгертулерді анықтау үшін пайдаланушы жобасын іске қосу уақытында сканерлеу жүргізіледі.

Пайдаланушы интерфейсінің қабығы кең қолдайды пайдалану мүмкіндігі ерекшеліктері, соның ішінде командалық жолдың аяқталуы (яғни TAB пернесін басыңыз), Интернеттегі көмек, нұсқау (. нысаны контекстке байланысты көмек ) және контексттік хабардарлық (бұл соңғы әрекетке негізделген ықтимал ниеттер туралы автоматты түрде қорытынды шығаруды қамтамасыз етеді). Бұл пайдаланушыға Roo қабығы арқылы жаңа бағдарламалық жасақтама жобасын жасауға немесе бар жобада Roo пайдалану мүмкіндігін береді. Төменде Roo жаңа қосымшаны және Spring Boot Maven плагинін құру үшін қолданатын командалардың мысалы келтірілген жүгіру кірістірілген HTTP серверін пайдаланып бағдарламаны құрастыру және іске қосу мақсаты:

$ mkdir сәлем $ CD сәлем $ roo.shroo> project setup --topLevelPackage com.fooroo> jpa setup - провайдер HIBERNATE - мәліметтер базасы HYPERSONIC_IN_MEMORYroo> нысан jpa --class ~ .domain.Timerroo> өріс жолы --fieldName хабарламасы --notNullroo> репозиторий -allroo> service --allroo> web mvc setuproo> web mvc көрінісін орнату - тип THYMELEAFroo> web mvc контроллері --all - ResponseType THYMELEAFroo> web mvc контроллері --all --pathPrefix / apiroo> шығу $ mvn spring-boot : жүгіру

Жоғарыда келтірілген командаларды толық теру қажет емес, керісінше TAB көмегімен аяқталды. Сонымен қатар, кез-келген уақытта көмек алу үшін «кеңес» командасы қолданылуы мүмкін еді.

Сәулет

Бағдарламалық жасақтаманың көптеген жолдары бар автоматты түрде жасайды код,[11] Roo генерациялау арқылы жұмыс істейді AspectJ типаралық декларациялар (басқаша деп аталады) миксиндер немесе кіріспелер). Бұл қол жеткізеді алаңдаушылықты бөлу, өйткені Roo қолдайтын код қолданушы жазатын кодтан басқа компиляция бөлімінде орналасқан. Бұл Roo қажет болатын AspectJ типаралық декларацияларын біртіндеп өзгерте алады және барлық қалған файлдарды өзгеріссіз қалдыра алады.[12][13][14]

Spring Roo барлық функционалдылықты қамтамасыз ету үшін қондырмаларды пайдаланады OSGi негізделген жұмыс уақыты жүйесі Апачи Феликс.

Негізгі қондырмалар

Roo-да көптеген «командалық қондырғылар» (Roo-мен бірге жеткізілетіндер) және «үшінші тарап қондырмалары» (Roo-мен бірге жеткізбейтіндер) орнатылғанына байланысты қол жетімді. Roo 2.0.x жеткізілімінің негізгі қондырмаларына мыналар кіреді:

  • Қосымша жасаушы: үшінші тараптың қосымша қосымшаларын жасауға мүмкіндік береді
  • Сақтық көшірме: теру арқылы ZIP файлына сақтық көшірмелер жасауға мүмкіндік береді сақтық көшірме
  • Бұршақ туралы ақпарат: JavaBean сипатын, қол жеткізгішті және мутациялық метамәліметтерді (негізінен басқа қондырмалар қолданады)
  • Конфигурацияланған: Spring Framework @Configurable аннотациясын ұсынады (негізінен басқа қондырмалар қолданады)
  • Мәліметтер қоры кері инженерия: реляциялық мәліметтер базасын біртіндеп кері жобалауға мүмкіндік береді
  • Сұраныс туралы мәліметтер: сәйкес келетін тұқым деректерін ұсынады JSR 303 (JavaBean тексеру) ұйымдарда бар аннотациялар
  • DTO: автоматты түрде қолдау үшін кең қолдау Деректерді беру нысандары
  • Электрондық пошта: орнатуды жеңілдетеді SMTP арқылы электрондық пошта және пошта жіберушісіне қолдау көрсету Джавамейл
  • Субъект: автоматты түрде қолдау үшін кең қолдау Java Persistence API @Entity сыныптары
  • Java Bean: @RooJavaBean аннотациясымен сабақтарға арналған JavaBean алушыларды / орнатушыларды автоматты түрде қолдайды
  • JDBC: әртүрлі пакеттерде жеткізілген JDBC драйверлеріне OSGi-үйлесімді қол жетімділікті инкапсуляциялайды (бірінші кезекте басқа қондырмалар қолданады)
  • JMS: а-ға қосылуды жеңілдетеді JMS жеткізуші (немесе ендіру) ActiveMQ ) және JMS хабарламаларын жіберу / қабылдау
  • JPA: көрсетілгенді орнатады JPA жеткізуші және орнатады JDBC тиісінше
  • JSON: қосады JSON байланысты серияландыру және дезериализация әдісі POJO-мен байланысты
  • Ағаш кесу: орнатады Log4j, соның ішінде командалық журнал деңгейінің конфигурациясы
  • Плюрализация: қамтамасыз етеді плюрализация зат есімдері (бірінші кезекте басқа қосымшалар қолданады)
  • Сипат редакторы: талап етілгендей меншік редакторларын басқарады Көктем MVC
  • Меншіктік файл: басқарады Java файлдарды сипаттайды және қасиеттер мәндерін оқуға, орнатуға және жоюға қабықша командаларын ұсынады
  • Қауіпсіздік: орнатады Көктемгі қауіпсіздік кіру парақтарын, сүзгілерді және тәуелділікті қосқанда
  • Тест: шығарады JUnit жоба сыныптарына арналған интеграциялық тесттер
  • ToString: @RooToString аннотациясымен кез-келген сынып үшін жарамды toString () әдісін жасайды
  • Веб-ағым: орнатады Көктемгі веб-ағым және әдепкі ағын жасайды
  • Веб MVC: негізінде көру қабатын қолдайды Көктем MVC плюс Тимофель шаблондар мен RESTful API
  • WS: SOAP қызметтерін және SOAP клиенттерін шығарады

Roo негізгі модульдері

Roo сонымен қатар әртүрлі қондырмалар үшін орналастырылған орындау ортасын қамтамасыз ететін модульдердің негізгі жиынтығын қамтиды. Бұл негізгі модульдерге мыналар кіреді:

  • Қолдау: жалпыға ортақ модульдер мен қондырмалар қолданады утилита сыныбы қолдау қызметтері
  • Метадеректер: қамтамасыз етеді метадеректер тәуелділікті тіркеу және кэштеуді қамтитын қызмет провайдерінің интерфейсі және іске асырылуы
  • Файл мониторы: жариялайды іс-шаралар файлдық жүйенің анықталған өзгерістерінен кейін (әдепкі іске асыру автоматты түрде масштабталған дискіні қолданады) дауыс беру )
  • Файлды қайтару: файлды ұсынады қайтару технологиялық менеджер пайдалануға арналған қондырғы
  • Жоба: соңғы пайдаланушының типтік жобасын құрастыру сияқты рефераттар Apache Maven және Apache Ant
  • Процесс менеджері: ұсынады Қышқыл - тәрізді файлдық жүйе дискіні қайтару және процесті синхрондауды қамтитын абстракция
  • Сынып жолы: орындайды дерексіз синтаксис ағашы Java-ны және типті байланыстыру AspectJ жинақтау бірліктері
  • Феликс: -мен біріктіреді Апачи Феликс, мысалы, Roo қабығында «osgi» командаларын беру
  • OBR: қосады Апачи Феликс OSGi Bundle репозиторийінің мүмкіндіктері
  • URL ағыны: әр түрлі хост орталарында жүктеулерге кіруді қамтиды (Roo қабығы, IDE ендіру) және Өте жақсы құпиялылық -қатысушы httppgp: // протокол өңдеушісі

Саралау

Spring Roo басқа конфигурациядан тыс бағдарламаны жылдам әзірлеу құралдарынан келесі негізгі жолдармен ерекшеленеді:[15]

  1. Java платформасының өнімділігі: Roo Java әзірлеушілеріне өнімділік шешімін ұсынады. Ол қолданушыдан басқа тілде бағдарламалауды талап етпейді Java. Сондай-ақ, ол қолданыстағы әзірлеушілердің білімі, білігі мен тәжірибесін қайта пайдалануды арттыру үшін негізгі Java корпоративтік қолдану стандарттары мен технологияларын (жоғарыда көрсетілгендей) қолданады.
  2. Пайдалану мүмкіндігі: Roo-ның қабығы дайындық талаптарын минимизациялайтын ашылатын, қолдануға ыңғайлы ортаны қамтамасыз етуге арналған. Roo аннотацияларының барлығы кодтың көмегін жеңілдету үшін @Roo деп басталады (командалық жолдың аяқталуы IDE-де). Пайдаланушылар өздерінің IDE-ін барлық операциялар үшін қолдана алады және Roo-ның жұмыс істеуі туралы білудің қажеті жоқ. Roo пайдаланушыларға Roo жұмыс істемей тұрған кезде файлдарын өңдеуді қолдайды.
  3. Жұмыс уақыты жоқ: Roo а жұмыс уақыты API немесе нақты жұмыс уақытының компоненттерін қажет етеді. Бұл Roo-мен байланысты болмауын қамтамасыз етеді Орталық Есептеуіш Бөлім, жады және дискіні сақтау жұмыс уақытында ресурстарды тұтыну. Roo коды кіші іздер үшін оңтайландырылған бұлт орналастыру және жоғары ауқымдылық істерді қолдану.
  4. Бекітуге жол бермейді: Roo қолданушы жобасынан тез арада алынып тасталуы мүмкін, оны қорғауға пайдалы сатушының құлыптауы. Бұл мүмкін, себебі жоюға арналған жұмыс уақыты компоненті жоқ, @Roo аннотациясы тек «дереккөзді сақтау» болып табылады (олардың * .class файлдарында сақталмауын қамтамасыз ету)[16] және Roo's AspectJ типаралық декларациялар стандартты * .java компиляциялық қондырғыларына «итеруге» болады.[17][18]
  5. Кеңейту: Roo-дің негізгі инфрақұрылым мен негізгі қондырмаларды бөлуі үшінші тараптарға Roo-ны оңай кеңейтуге мүмкіндік береді.[19][20]

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

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

  1. ^ «InfoWorld: SpringSource бас директоры Roo-ны, Java-ның жаңа жетілдірілуін ұсынады» Пол Криллдің; 2009-06-01 ж.
  2. ^ «SD Times: Ру көктемдегі қайталанатын тапсырмаларды орындау үшін шығарылды» Алекс Хенди; 2009-10-19 күндері.
  3. ^ «Spring Roo анықтамалық құжаттары», Миссия туралы мәлімдеме бөлімі; Тексерілді 2010-2-21.
  4. ^ «Tech Videos: Java инновациясының болашағы» Мұрағатталды 2009-10-09 сағ Wayback Machine Род Джонсон (SpringSource бас директоры); Тексерілді 2009-10-17.
  5. ^ «Spring Roo анықтамалық құжаттары», Тарих бөлімі; Тексерілді 2010-2-21.
  6. ^ «InfoQ: Spring Roo 1.0 M1 шығарылды» Срини Пенчикала; 2009-5-31 күндері.
  7. ^ «Spring Roo Project шығарылымдарына арналған Jira шығарылымын бақылау»; Тексерілді 2010-2-21.
  8. ^ «Үлкен хоп алға: Spring Roo 1.1.0 шықты!» Мұрағатталды 2010-10-28 Wayback Machine, Бен Алекс (SpringSour-дағы Spring Roo жетекшісі); 2010-10-27 шығарылды.
  9. ^ «TechCast: Spring Roo подкаст» Кен Римплдің; Тексерілді 2010-2-21.
  10. ^ «Spring Roo 1.2.4.RELEASE қазір қол жетімді» 2013-10-17 күндері.
  11. ^ «InfoQ: Java-ны дамытудағы кодтардың пайда болуының рөлі» Срини Пенчикаланың; 2009-9-3.
  12. ^ «InfoQ: Spring Roo 1.0.0 таныстырылымы» бейне презентациясы «, Бен Алекс (SpringSource-тегі Spring Roo жетекшісі); Тексерілді 2010-2-21.
  13. ^ «JAX Italia 2009 конференциясы: көктемгі роо» Массимилиано Дессидің; Тексерілді 2010-2-21.
  14. ^ «Philadelphia Java пайдаланушылар тобы: Spring Roo» Кен Римплдің; Тексерілді 2010-2-21.
  15. ^ «Spring Roo басты беті»; Тексерілді 2010-2-21.
  16. ^ «ReturnPolicy.SOURCE үшін Sun Java 5 JavaDocs» Sun Microsystems арқылы; Тексерілді 2009-10-17.
  17. ^ «AJDT-ге арналған қайта қалпына келтіру» Эндрю Эйзенбергтің (SpringSource жобасының жетекшісі AJDT); Тексерілді 2009-10-17.
  18. ^ «Eclipse AJDT интертиптері және қайта итеру» Мұрағатталды 2010-01-17 сағ Wayback Machine Дхруба Бандопадхей; 2009-12-31 күндері.
  19. ^ «Италияның Java пайдаланушылар тобы JavaDay IV конференциясы: Spring Roo Internals» Массимилиано Дессидің; Тексерілді 2010-2-21.
  20. ^ «Көктем, Ру және Альфреско да: Альфреско көктемге не берді және неге» Джефф Поттс; 2009-12-16 күндері.

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