Spring Roo — фреймворк с открытым исходным кодом для быстрого создания бизнес-приложений на Java.[1] Полученные в результате приложения используют общие технологии Java, такие как Spring Framework, Java Persistence API, JSP, Apache Maven и AspectJ[2]. Spring Roo является частью проекта Spring.
История
Главной задачей проекта Spring Roo является «принципиальное улучшение труда Java-программистов без ущерба для инженерного внедрения и гибкости»[3].
Технология была впервые продемонстрирована в ходе конференции программистов SpringOne Europe 27 апреля 2009 года одновременно с публикацией первого альфа-релиза. Во время конференции прошло обсуждение названия продукта (тогда он находился по кодовым названием «Roo», без «SpringSource»)[4]. В результате название «Spring Roo» стало более предпочтительным, вытеснив при этом «Spring Boost», «Spring Spark», «Spring HyperDrive» и «Spring Dart».[5]
Совместимость стандартов и технологий
Roo по умолчанию облегчает создание приложений, которые совместимы со следующими стандартами и основными технологиями[6]:
- 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 отличается от других аналогичных приложений по следующим основным причинам:[7]
- Производительность платформы Java: Roo обеспечивает для Java-разработчиков производительность их решений. Пользователь должен использовать только Java. Roo использует основные стандарты и технологии бизнес-приложений, чтобы максимизировать удобство разработки поверх уже готового кода.
- Юзабилити: Оболочка Roo разработана с целью обеспечить простую для использования среду разработки, которая сводит к минимуму требования предварительного обучения. Аннотации Roo всегда начинаются с @Roo (в командной строке в IDE). Кроме того, пользователи могут редактировать программные файлы Roo, когда IDE не работает.
- Нет лишних библиотек: Roo не использует API среды исполнения и не требует наличия различных системных библиотек. Это гарантирует, что нет связанного с Roo потребления ресурсов процессора, диска и оперативной памяти. Код оптимизирован для компактного развертывания облачных вычислений и множества вариантов использования масштабируемости.
- Не привязан к поставщику: Roo может быть быстро удален из проекта, что помогает избежать привязки к поставщику ПО.[8][9][10]
- Расширяемость: Разделение базовой инфраструктуры ядра и базовых дополнений позволяют сторонним разработчикам создавать плагины для Roo.[11][12]
Ссылки
- Официальный сайт продукта (англ.)
Примечания
- ↑ SpringSource CEO to tout Roo, a new Java enhancement . Дата обращения: 31 августа 2011. Архивировано 8 июня 2011 года.
- ↑ SD Times: Roo released to handle repetitive Spring tasks . Дата обращения: 31 августа 2011. Архивировано из оригинала 25 февраля 2012 года.
- ↑ Spring Roo reference documentation", Mission Statement section . Дата обращения: 5 сентября 2011. Архивировано 5 сентября 2011 года.
- ↑ SpringOne Europe 2009 Keynote: The Future of Java Innovation Архивировано 9 октября 2009 года.
- ↑ Spring Roo reference documentation . Дата обращения: 5 сентября 2011. Архивировано 5 сентября 2011 года.
- ↑ TechCast: Spring Roo podcast . Дата обращения: 31 августа 2011. Архивировано 23 февраля 2010 года.
- ↑ Spring Roo Home Page . Дата обращения: 30 августа 2011. Архивировано 30 августа 2011 года.
- ↑ Sun Java 5 JavaDocs for RetentionPolicy.SOURCE . Дата обращения: 9 сентября 2011. Архивировано 29 июня 2010 года.
- ↑ Push-In Refactoring for AJDT . Дата обращения: 9 сентября 2011. Архивировано 8 июля 2011 года.
- ↑ Eclipse AJDT intertypes and Push-In refactoring Архивировано 17 января 2010 года.
- ↑ Italian Java User Group JavaDay IV Conference: Spring Roo Internals . Дата обращения: 9 сентября 2011. Архивировано 5 сентября 2011 года.
- ↑ Spring, Roo, and Alfresco Too: What Alfresco Gave to Spring and Why . Дата обращения: 9 сентября 2011. Архивировано 29 сентября 2011 года.