Jump to content

Спринг Роо

Спринг Роо
Разработчик(и) ЮГ, Ключевое программное обеспечение
Стабильная версия
1.3.2 / 1 сентября 2015 г. ( 01.09.2015 )
Предварительный выпуск
2.0.0.РЕЛИЗ / 30 сентября 2019 г. ( 2019-09-30 )
Написано в Ява
Платформа Ява SE
Тип Быстрая разработка приложений
Лицензия Лицензия Апач 2.0
Веб-сайт проекты .весна .что /весенний руо /

Spring Roo — это программный инструмент с открытым исходным кодом , который использует соглашения по настройке принципы для обеспечения быстрой разработки приложений корпоративного Java на основе программного обеспечения . [1] В полученных приложениях используются распространенные технологии Java, такие как Spring Framework , Java Persistence API , Thymeleaf , Apache Maven и AspectJ . [2] Spring Roo является членом Spring портфолио проектов .

Мотивация и история

[ редактировать ]

Миссия Spring Roo заключается в том, чтобы «фундаментально повысить производительность Java-разработчиков без ущерба для инженерной целостности и гибкости» . [3]

Технология была впервые продемонстрирована во время вступительного выступления на конференции разработчиков SpringOne Europe 27 апреля 2009 года, одновременно с этим была опубликована первоначальная альфа-версия. Во время основного доклада в прямом эфире было создано приложение, которое участники конференции будут использовать для голосования за предпочтительное название проекта (который в то время в SpringSource носил кодовое название «Roo» ). [4] В конечном итоге название «Spring Roo» было предпочтительнее альтернатив, включая 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 обычно поддерживают последние доступные выпуски других проектов портфолио Spring .

В 2014 году DISID берет на себя руководство инфраструктурой с открытым исходным кодом Spring Roo после соглашения о партнерстве с Pivotal. Они сотрудничают в дальнейшем развитии проекта Spring Roo. Roo продолжит реализацию своей цели по созданию среды RAD с генерацией кода.

Проект Spring Roo останется проектом с открытым исходным кодом в рамках Spring, сохраняя ту же текущую политику лицензирования. И Pivotal, и DISID призывают сообщества Spring и Java всех, кто хотел бы сотрудничать в проекте.

Стандарты и совместимость технологий

[ редактировать ]

Установка Roo по умолчанию облегчает создание приложений, соответствующих следующим стандартам и основным технологиям: [9]

Приведенный выше список может быть дополнен дополнительными надстройками Roo, которые обеспечивают метод расширяемости Roo .

Пользовательский интерфейс

[ редактировать ]

Основной пользовательский интерфейс Spring Roo представляет собой оболочку командной строки . Оболочка предоставляет как интерфейс командной строки , так и механизм для размещения плагинов (которые в Roo называются «дополнениями»). Одной из ключевых целей разработки Roo является обеспечение того, чтобы пользователь мог продолжать работать «естественным образом», что обычно означает использование предпочитаемой им интегрированной среды разработки (IDE) или текстового редактора для большинства задач. Таким образом, Roo часто загружается в отдельном окне IDE или текстового редактора и отслеживает файловую систему на предмет изменений, внесенных пользователем за пределами Roo. Сканирование пользовательского проекта во время запуска также выполняется для определения любых изменений, которые могли быть внесены, пока Roo не работал.

Оболочка пользовательского интерфейса поддерживает обширные удобства использования функции , включая завершение командной строки (например, нажатие клавиши TAB), интерактивную справку , подсказки (форма контекстно-зависимой справки ) и контекстную осведомленность (которая обеспечивает автоматический вывод о вероятных намерениях на основе недавних действий). Это позволяет пользователю создать новый программный проект через оболочку Roo или использовать Roo в существующем проекте. Ниже приведен пример команд, используемых Roo для создания нового приложения, а также цель запуска плагина Spring Boot Maven для компиляции и запуска приложения с использованием встроенного HTTP-сервера:

$ mkdir hello
$ cd hello
$ roo.sh
roo> project setup --topLevelPackage com.foo
roo> jpa setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY
roo> entity jpa --class ~.domain.Timer
roo> field string --fieldName message --notNull
roo> repository jpa --all
roo> service --all
roo> web mvc setup
roo> web mvc view setup --type THYMELEAF
roo> web mvc controller --all --responseType THYMELEAF
roo> web mvc controller --all --pathPrefix /api
roo> quit
$ mvn spring-boot:run

Вышеупомянутые команды не нужно было вводить полностью, они выполнялись с помощью TAB. Кроме того, команду «подсказка» можно было использовать для получения помощи в любое время.

Архитектура

[ редактировать ]

Хотя существует множество способов, с помощью которых программное обеспечение может автоматически генерировать код, [11] Roo работает, генерируя AspectJ объявления межтиповых типов (также известные как примеси или введения). Это обеспечивает разделение задач , поскольку код, поддерживаемый Roo, находится в другой единице компиляции, чем код, который пишет пользователь. Это означает, что Roo может постепенно изменять необходимые ему объявления межтиповых типов AspectJ, оставляя все остальные файлы нетронутыми. [12] [13] [14]

Spring Roo использует надстройки для обеспечения всех функций внутри и поверх системы выполнения OSGi на основе Apache Felix .

Базовые дополнения

[ редактировать ]

В Roo доступно множество команд, в зависимости от того, какие «базовые надстройки» (те, которые поставляются с Roo) и «сторонние надстройки» (те, которые не поставляются с Roo) были установлены. Базовые дополнения, поставляемые с Roo 2.0.x, включают:

  • Add-On Creator : позволяет легко создавать сторонние дополнения Roo.
  • Резервное копирование : позволяет создавать резервные копии в ZIP-файл, набрав backup
  • Информация о компоненте : предоставляет метаданные свойств JavaBean, средств доступа и мутаторов (в основном используются другими надстройками).
  • Конфигурируемый : представляет аннотацию @Configurable Spring Framework (в основном используется другими надстройками).
  • Реверс-инжиниринг базы данных : позволяет поэтапный реверс-инжиниринг реляционных баз данных.
  • Данные по требованию : предоставляет начальные данные, соответствующие аннотациям JSR 303 (проверка JavaBean), присутствующим в объектах.
  • DTO : расширенная поддержка автоматического обслуживания объектов передачи данных.
  • Электронная почта : упрощает настройку электронной почты на основе SMTP и поддержку отправителей почты через Javamail.
  • Entity : расширенная поддержка автоматического поддержания Java Persistence API @Entity. классов
  • Java Bean : автоматически поддерживает методы получения/установки JavaBean для классов с аннотацией @RooJavaBean.
  • JDBC : инкапсулирует OSGi-совместимый доступ к драйверам JDBC, поставляемым в различных пакетах (в основном используется другими надстройками).
  • JMS : упрощает подключение к поставщику JMS (или внедрение ActiveMQ ) и отправку/получение сообщений JMS.
  • JPA : устанавливает указанный поставщик JPA настраивает JDBC. и соответствующим образом
  • JSON : добавляет JSON. в POJO методы сериализации и десериализации, связанные с
  • Ведение журнала : настройка Log4j , включая настройку уровня журнала на основе команд.
  • Плюрализация : обеспечивает множественное число существительных (в основном используется в других дополнениях).
  • Редактор свойств : управляет редакторами свойств, как того требует Spring MVC.
  • Файл свойств : управляет файлами свойств Java и предоставляет команды оболочки для чтения, установки и удаления значений свойств.
  • Безопасность : настраивает Spring Security , включая страницы входа, фильтры и зависимости.
  • Тест : создает JUnit для классов проекта. интеграционные тесты
  • ToString : создает действительный метод toString() для любого класса с аннотацией @RooToString.
  • Web Flow : устанавливает Spring Web Flow и создает поток по умолчанию.
  • Web MVC : поддерживает уровень представления на основе шаблонов Spring MVC плюс Thymeleaf и RESTful API.
  • WS : производит службы SOAP и клиенты SOAP.

Основные модули Roo

[ редактировать ]

Roo также включает в себя основной набор модулей, которые обеспечивают размещенную среду выполнения для различных надстроек. Эти основные модули включают в себя:

Дифференциация

[ редактировать ]

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] AspectJ Ру а объявления межтиповых типов можно «вставить» в стандартные модули компиляции *.java. [17] [18]
  5. Расширяемость : разделение Roo базовой инфраструктуры и базовых надстроек позволит третьим сторонам легко расширять Roo. [19] [20]

См. также

[ редактировать ]
  1. ^ «InfoWorld: генеральный директор SpringSource рекламирует Roo, новое усовершенствование Java» Пола Криля; Датировано 1 июня 2009 г.
  2. ^ «SD Times: Ру выпущен для выполнения повторяющихся задач Spring». Архивировано 25 февраля 2012 г. в Wayback Machine Алексом Хэнди; Датировано 19 октября 2009 г.
  3. ^ «Справочная документация Spring Roo» , раздел «Заявление о миссии»; Проверено 21 февраля 2010 г.
  4. ^ «Технические видеоролики: будущее инноваций в Java». Архивировано 9 октября 2009 г. в Wayback Machine Родом Джонсоном (генеральным директором SpringSource); Проверено 17 октября 2009 г.
  5. ^ «Справочная документация Spring Roo» , раздел «История»; Проверено 21 февраля 2010 г.
  6. ^ «InfoQ: Выпущен Spring Roo 1.0 M1» Срини Пенчикала; Датировано 31 мая 2009 г.
  7. ^ «Отслеживание проблем Jira для выпусков Spring Roo Project» ; Проверено 21 февраля 2010 г.
  8. ^ «Большой шаг вперед: выпущен Spring Roo 1.1.0!» Архивировано 28 октября 2010 г. в Wayback Machine Беном Алексом (руководителем Spring Roo в SpringSource); Проверено 27 октября 2010 г.
  9. ^ «TechCast: подкаст Spring Roo» Кена Римпла; Проверено 21 февраля 2010 г.
  10. ^ «Spring Roo 1.2.4.РЕЛИЗ уже доступен» от 17 октября 2013 г.
  11. ^ «InfoQ: роль генерации кода в разработке Java» Шрини Пенчикала; Датировано 3 сентября 2009 г.
  12. ^ «InfoQ: Знакомство с видеопрезентацией Spring Roo 1.0.0» , Бен Алекс (руководитель Spring Roo в SpringSource); Проверено 21 февраля 2010 г.
  13. ^ «Конференция JAX Italia 2009: Весенний Ру» Массимилиано Десси; Проверено 21 февраля 2010 г.
  14. ^ «Группа пользователей Java в Филадельфии: Spring Roo» Кена Римпла; Проверено 21 февраля 2010 г.
  15. ^ "Домашняя страница Spring Roo" ; Проверено 21 февраля 2010 г.
  16. ^ «Sun Java 5 JavaDocs для RetentionPolicy.SOURCE» от Sun Microsystems; Проверено 17 октября 2009 г.
  17. ^ «Рефакторинг Push-In для AJDT» Эндрю Айзенберга (руководитель проекта AJDT в SpringSource); Проверено 17 октября 2009 г.
  18. ^ «Интертипы Eclipse AJDT и рефакторинг Push-In». Архивировано 17 января 2010 г. в Wayback Machine Дхрубой Бандопадхьяем; Датировано 31 декабря 2009 г.
  19. ^ «Конференция JavaDay IV итальянской группы пользователей Java: Внутренние элементы Spring Roo» Массимилиано Десси; Проверено 21 февраля 2010 г.
  20. ^ «Весна, Ру и Alfresco тоже: что Alfresco дал весне и почему» Джеффа Поттса; Датировано 16 декабря 2009 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 099d0a8cb02d9797a4e675d572d1383b__1721507580
URL1:https://arc.ask3.ru/arc/aa/09/3b/099d0a8cb02d9797a4e675d572d1383b.html
Заголовок, (Title) документа по адресу, URL1:
Spring Roo - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)