Search
Write a publication
Pull to refresh

Опытный взгляд Java программиста на Spring Roo

Опытный взгляд Java программиста на Spring Roo



image

Прежде чем рассказать о технологии Spring Roo, хочу сделать не большое отступление по поводу того, зачем вообще все это нужно.

В одно время мне пришлось работать ведущим Java программистом в Web 2.0 проекте. Проект был полностью ориентирован под Spring.

Архитектура выглядела примерно так:
  • самый нижний уровень — hibernate
  • чуть по выше — java domain objects
  • потом DAO
  • сервисы
  • ну и наконец controllers + view


По большойму счету такая архитектура у подовляющего большинства Spring решений.
Время, затраченое командой из трех программистов на то, что бы поднять базовый скелет системы и стабилизировать его, было равно 2.5 месяцам.

После того, как я познакомился со Spring Roo, я самостоятельно поднял такой проект на этой технологии за 3 недели.
Дня три — знакомство и изучение Spring Roo.
Остальные 2.5 недели — создание и кустомизация скелета.

Теперь разберемся более детально с данной технологи.
Как пишут на официальном сайте Spring Roo — это легковесный инструмент разработки, что делает его быстрым и простым для достижения мгновенных результатов.

Итак, идем на сайт Spring Roo, скачиваем релиз www.springsource.com/products/spring-community-download, разархивируем.

Установка Roo тривиальна, добавляем путь к папке bin в classpath.
Например, если у вас ОС MS Windows то, для текущего релиза, spring-roo-1.1.0, добавьте путь ..\spring-roo-1.1.0.RELEASE\bin в переменную окружения path.

Так же, для компиляции примеров, необходимо установить Java SDK 6 и Apache Maven.

Итак, заходим в папку samples, там лежат несколько примеров конфигурационных файлов для проектов Spring Roo. Для примера возьмем проекта clinic (конфиг clinic.roo).

Для создания и деплоя проекта проделайте следующие действия:
  • создайте папку clinic и перейдите в неё
  • запустите оболочку roo (команда roo)
  • выполните в оболочке roo команду: script --file ../clinic.roo
  • запускаем компиляцию и деплой maven’ом: mvn clean install tomcat:run


Если все скомпилилось и задеплоилось без ошибок идем на localhost:8080/clinic и видим рабочее решение на технологии Spring Roo.

Если бы мы писали подобный проект руками, то потратили бы на это, вместе с тестированием, недели полторы, две. Разобраться с Roo и написать конфигурационный файл проекта, по моим оценкам не заняло бы и 5 дней, вместе с автоматическими uni-test’ами и UI тестами для selenium.

Spring Roo по сути оболочка для быстрого создания Spring решений, на основе архитектуры, о которой я писал выше. Если же вы обнаружите, недостатки решений на основе Roo то, можно написать свой плугин. В этом смысле, данная технология, очень гибкая и может кустомизироваться практически под любой Spring проект.

К достоинствам я бы еще отнес, то, что из Roo мы можем брать только отдельные части решения, например domain уровень, а controllers и view написать самостоятельно.

Основные недостатки на мой взгляд следующие:
  • по умолчанию технология для отображения (view) JSP, было бы лучше сделать Freemarker
  • добавить возможность отключения аспектного подхода
  • добавить возможность создания jar проектов (сейчас доступны только war)
  • мало документации


Подведу итог: Spring Roo очень мощное решение для быстрого создания Java проектов на платформе Spring. К сожалению, на сегодняшний день Roo поддерживает не так много возможностей как хотелось бы, но умелое использование отдельных модулей, может дать ускорение начальной стадии разработки проекта, в десятки раз.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.