Spring Roo — фреймворк с открытым исходным кодом для быстрого создания бизнес-приложений на Java. Полученные в результате приложения используют общие технологии Java, такие как Spring Framework, Java Persistence API, JSP, Apache Maven и AspectJ. Spring Roo является частью проекта Spring.
История Главной задачей проекта Spring Roo является «принципиальное улучшение труда Java-программистов без ущерба для инженерного внедрения и гибкости».
Технология была впервые продемонстрирована в ходе конференции программистов SpringOne Europe 27 апреля 2009 года одновременно с публикацией первого альфа-релиза. Во время конференции прошло обсуждение названия продукта (тогда он находился по кодовым названием «Roo», без «SpringSource»)SpringOne Europe 2009 Keynote: The Future of Java Innovation . В результате название «Spring Roo» стало более предпочтительным, вытеснив при этом «Spring Boost», «Spring Spark», «Spring HyperDrive» и «Spring Dart».
Совместимость стандартов и технологий
Roo по умолчанию облегчает создание приложений, которые совместимы со следующими стандартами и основными технологиями: Apache ActiveMQ (в качестве встроенной реализации JMS) Adobe Flex (через установленный плагин SpringSource) Apache Maven (с версии 2.2 и выше) Apache OpenJPA (в качестве реализации JPA) Apache Solr (поисковый сервер) Apache Tiles (стандартный вид MVC) Apache Tomcat (hosted execution support) AspectJ (используется для АОП с «примесями» для достижения разделения ответственности) AspectJ Development Tools (плагин для Eclipse) Облачные вычисления (через SpringSource Cloud Foundry, Google App Engine и VMforce) Dojo Toolkit (через Spring JavaScript) Eclipse (среда разработки) (одновременное выполнение и создание метаданных проекта) EclipseLink (в качестве реализации JPA) Google Web Toolkit (с GWT 2.1, включая особенность GWT 2.1 — такие как «фабрика запросов») Hibernate (в качестве реализации JPA) Java Bean Validation (JSR 303) (включая Hibernate Validator) Java Database Connectivity (для использования JPA) Java Message Service (интерфейс сообщений производителей и потребителей) Java Persistence API (несколько реализаций) Java Transaction API (через монитор транзакций Spring) Java (версия 5 и выше) Java Server Pages (стандартный вид MVC) Jetty (hosted execution support) JSON (методы в классах для сериализации, десериализации и поддержки REST) JUnit (автоматическое тестирование проектов пользователя) Log4j (установка и настройка) OSGi (Roo основан на OSGi) Representational State Transfer (REST) Selenium (автоматическое тестирование проектов пользователя) Spring Framework (реализовано в версии 3 и выше) Spring Security (реализовано в версии 3 и выше) Spring Web Flow (установка и определение процедуры) SpringSource Tool Suite (STS имеет встроенную консоль Roo и помощник) .war (для распаковки пакетов)
Список может быть расширен за счёт дополнений.
Архитектура
Spring Roo работает путем генерации межтиповых объявлений AspectJ (иначе известных как примеси или введения). Это обеспечивает разделение ответственности, поскольку код, поддерживаемый Spring Roo, находится в другом модуле компиляции, отличном от кода, написанного пользователем. Это означает, что Spring Roo может постепенно изменять необходимые межтиповые объявления AspectJ, оставляя все остальные файлы нетронутыми.
Spring Roo использует дополнения для предоставления всей функциональности внутри и поверх системы выполнения OSGi, основанной на Apache Felix.
Отличия
Spring Roo отличается от других аналогичных приложений по следующим основным причинам:
Производительность платформы Java: Roo обеспечивает для Java-разработчиков производительность их решений. Пользователь должен использовать только Java. Roo использует основные стандарты и технологии бизнес-приложений, чтобы максимизировать удобство разработки поверх уже готового кода. Юзабилити: Оболочка Roo разработана с целью обеспечить простую для использования среду разработки, которая сводит к минимуму требования предварительного обучения. Аннотации Roo всегда начинаются с @Roo (в командной строке в IDE). Кроме того, пользователи могут редактировать программные файлы Roo, когда IDE не работает. Нет лишних библиотек: Roo не использует API среды исполнения и не требует наличия различных системных библиотек. Это гарантирует, что нет связанного с Roo потребления ресурсов процессора, диска и оперативной памяти. Код оптимизирован для компактного развертывания облачных вычислений и множества вариантов использования масштабируемости. Не привязан к поставщику: Roo может быть быстро удален из проекта, что помогает избежать привязки к поставщику ПО.Eclipse AJDT intertypes and Push-In refactoring Расширяемость: Разделение базовой инфраструктуры ядра и базовых дополнений позволяют сторонним разработчикам создавать плагины для Roo.
Ссылки Официальный сайт продукта
Примечания
Категория:Фреймворки Категория:Генераторы программного кода