1. Обзор
Spring Roo — это инструмент быстрого разработки приложений (RAD), который стремится обеспечить быстрые и мгновенные результаты, ориентированные на веб-приложения Spring и новые технологии Spring. Это позволяет нам создавать шаблонный код и структуру проекта для весенних приложений с простым в использовании командами.
Roo может использоваться в качестве автономного приложения, работающего от командной строки операционной системы. Нет необходимости использовать Eclipse, Spring Tool Suite (STS) или любой другой IDE; на самом деле, мы можем использовать любой текстовый редактор для написания кода!
Однако для простоты мы будем использовать STS IDE с расширением Roo.
2. Установка Спринг-Ру
2.1. Требования
Чтобы следовать этому учебнику, они должны быть установлены:
2.2. Установка
Как только мы загрузим и установим Java JDK и STS, нам нужно распаковать Spring Roo и добавить его в системный путь.
Давайте создадим ROO_HOME переменной среды и добавить %ROO_HOME%-бен на путь.
Чтобы убедиться, что Roo установлен правильно, мы можем открыть командную строку и выполнить следующие команды:
mkdir baeldung cd baeldung roo quit
Через несколько секунд мы увидим:
_ ___ _ __ _ __(_)_ __ __ _ _ __ ___ ___ / __| '_ \| '__| | '_ \ / _` | | '__/ _ \ / _ \ \__ \ |_) | | | | | | | (_| | | | | (_) | (_) | |___/ .__/|_| |_|_| |_|\__, | |_| \___/ \___/ |_| |___/ 2.0.0.RC1 Welcome to Spring Roo. For assistance press TAB or type "hint" then hit ENTER.
Roo установлен, и он работает. Обратите внимание, что версия Spring Roo будет меняться, а шаги и инструкции могут зависеть от фактической используемой версии.
Важно: Spring Roo 2.0 не совместим с 1.x.
2.3. Добавление и настройка расширения СТЕ
СТЕ поддерживает разработку приложений Spring и включает в себя готовые к использованию расширения. Тем не менее, расширение Spring Roo не включено. Таким образом, мы должны добавить его вручную.
В СТЕ пойдем в Установка новых программных и импортные закладки для Доступные сайты программного обеспечения . В настоящее время закладки находятся в %ROO_HOME%-конф папка. Как только мы импортировали закладки, мы можем искать просто Ру и установить последнюю версию Весенний IDE Roo Поддержка . В конце концов, нас попросят перезапустить СТЕ.
Для получения подробных и готовых шагов мы всегда можем пойти и проверить Весна Ру Начало документация.
После установки Roo Support в СТЕ нам необходимо настроить расширение. Это так же просто, как указывая Roo Поддержка %ROO_HOME% папка. Опять же, Весна Ру Начало дает подробные шаги, как это сделать.
Теперь мы можем перейти в меню приложения “Окно” еще раз и выбрать Показать Вид > Ру Шелл.
3. Первый проект
3.1. Создание проекта в СТЕ
В СТЕ откроем Ру Шелл окна и нажмите на Создание новых проектов Roo икона. Это откроет Новый проект Ру окно.
Мы назовем проект Ру и использовать com.baeldung как наше имя пакета верхнего уровня. Мы можем оставить все остальные значения по умолчанию и приступить к концу, чтобы создать новый проект с использованием Roo.
В СТЕ это будет работать следующая команда для нас:
project setup --topLevelPackage com.baeldung --projectName "roo" --java 8 --packaging JAR
Как уже упоминалось, нам не нужен IDE, и мы могли бы запустить эту команду от Roo Shell сами! Для простоты мы используем встроенные функции STS.
Если мы получим следующую ошибку:
Could not calculate build plan: Plugin org.codehaus.mojo:aspectj-maven-plugin:1.8 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.codehaus.mojo:aspectj-maven-plugin:jar:1.8
Самый простой способ исправить это вручную редактировать пом.xml файл и обновление aspectj.plugin.version из 1,8 1,9 :
1.9
На данном этапе не должно быть никаких ошибок в проекте, и там будет несколько автоматически генерируемых файлов для нас.
3.2. Ру Шелл
Теперь пришло время ознакомиться с Roo Shell. Основной пользовательский интерфейс Spring Roo, по сути, командный запрос!
Поэтому вернемся к окну Roo Shell. В нем давайте завержим первую команду, введя ‘h’ и нажав CTRL-SPACE:
roo> h help hint
Roo будет автоматически предлагать и автоматически выполнять команды для нас. Мы можем ввести ‘привет’, нажмите CTRL-SPACE, и Ру будет автоматически предлагать намек команда.
Еще одной замечательной особенностью Roo Shell является контекст осведомленности . Например, выход намек команда будет меняться в зависимости от предыдущего ввода.
Давайте теперь выполним намек команды и посмотреть, что происходит:
roo> hint Roo requires the installation of a persistence configuration. Type 'jpa setup' and then hit CTRL+SPACE. We suggest you type 'H' then CTRL+SPACE to complete "HIBERNATE". After the --provider, press CTRL+SPACE for database choices. For testing purposes, type (or CTRL+SPACE) HYPERSONIC_IN_MEMORY. If you press CTRL+SPACE again, you'll see there are no more options. As such, you're ready to press ENTER to execute the command. Once JPA is installed, type 'hint' and ENTER for the next suggestion.
Это дает нам следующие шаги, которые мы должны выполнить. Давайте добавим базу данных сейчас:
roo> jpa setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY Created SRC_MAIN_RESOURCES\application.properties Updated SRC_MAIN_RESOURCES\application.properties Updated SRC_MAIN_RESOURCES\application-dev.properties Updated ROOT\pom.xml [added dependencies org.springframework.boot:spring-boot-starter-data-jpa:, org.springframework.boot:spring-boot-starter-jdbc:, org.hsqldb:hsqldb:; added property 'springlets.version' = '1.2.0.RC1'; added dependencies io.springlets:springlets-data-jpa:${springlets.version}, io.springlets:springlets-data-jpa:${springlets.version}; added dependencies io.springlets:springlets-data-commons:${springlets.version}, io.springlets:springlets-data-commons:${springlets.version}]
На этом этапе нам нужно будет выполнить некоторые команды. Между каждым из них, мы всегда можем запустить намек команды, чтобы увидеть, что предлагается Ру. Это очень полезная функция.
Давайте сначала забудем команды , и мы будем проходить через них потом:
roo> entity jpa --class ~.domain.Book field string --fieldName title --notNull field string --fieldName author --notNull field string --fieldName isbn --notNull repository jpa --entity ~.domain.Book service --all web mvc setup web mvc view setup --type THYMELEAF web mvc controller --entity ~.domain.Book --responseType THYMELEAF
Теперь мы готовы запустить наше приложение. Тем не менее, давайте шаг назад через команды, чтобы увидеть, что мы сделали.
Во-первых, мы создали новую постоянную сущность JPA в src/main/java папка. Затем мы создали три Струнные поля в Книжный класс, дал им имя и установить, чтобы не нулевой .
После этого мы создали репозиторий весенних данных для указанной сущности и создали новый интерфейс службы.
В конце концов, мы включили конфигурацию Spring MVC, установили Thymeleaf и создали новый контроллер, который управляет нашей сущностью. Поскольку мы прошли Thymeleaf в качестве типа ответа, генерируемые методы и представления будут отражать это.
3.3. Запуск приложения
Давайте обновим проект и нажать правой кнопкой Ру проекта и выбора Вы запустите > весенней загрузки App .
Как только приложение запущено, мы можем открыть веб-браузер и перейти к http://localhost:8080 . Далее, к иконе Roo, мы увидим Книжный меню и под двумя вариантами: Создание книги и Список книг . Мы можем использовать это, чтобы добавить книгу в наше приложение и просмотреть список добавленных книг.
3.4. Другие особенности
Когда мы открываем Книга.java файл класса, мы заметим, что класс аннотирован @Roo Аннотации. Они были добавлены Roo Shell и используются для управления и настройки содержимого файлов меж типовой декларации AspectJ (ITD). Мы можем просматривать файлы в Package Explorer в STS, не избирая фильтр “Hide generated Spring Roo ITDs” в меню View, или мы можем открыть файлы непосредственно из файловой системы.
Roo аннотации ИСТОЧНИК политики удержания. Это означает аннотации не будут присутствовать в компилированном классе bytecode , и не будет никакой зависимости от Roo в развернутых приложениях.
Другой, очевидно, отсутствует часть в Книга.java класс геттеры и сеттеры . Они хранятся в отдельных файлах AspectJ ITDs, как уже упоминалось. Roo будет активно поддерживать этот шаблонный код для нас. Таким образом, изменения в полях в любом классе будут автоматически отражены в ИТ-системах AspectJ, поскольку Roo «следит» за всеми изменениями – либо через Roo Shell, либо непосредственно разработчиком в IDE.
Roo будет заботиться о повторяющихся код, как toString () или равны () методы тоже.
Кроме того, фреймворк можно легко удалить из проекта, избегая блокировки поставщика, удаляя аннотации и подталкивая AspectJ ITD к стандартному Java-коду.
4. Заключение
В этом быстром примере нам удалось установить и настроить Spring Roo в СТЕ и создать небольшой проект.
Мы использовали Roo Shell, чтобы настроить его и не нужно было писать одну строку фактического кода Java! И мы смогли получить рабочий прототип приложения в течение нескольких минут, и Roo позаботился обо всем шаблонного кода для нас.
Как всегда, код, используемый на протяжении всего обсуждения, можно найти более на GitHub .