知識庫 / Spring RSS 訂閱

Spring Roo 快速入門指南

Spring
HongKong
2
02:34 PM · Dec 06 ,2025

1. 概述

Spring Roo 是一種快速應用程序開發 (RAD) 工具,旨在為 Spring Web 應用程序和最新 Spring 技術提供快速、即時結果。它允許我們使用簡單易用的命令生成 Spring 應用程序的樣板代碼和項目結構。

Roo 可以作為獨立應用程序從操作系統命令行運行。無需使用 Eclipse、Spring Tool Suite (STS) 或任何其他 IDE;實際上,我們甚至可以使用任何文本編輯器編寫代碼!

但是,為了簡化起見,我們將使用帶有 Roo 擴展的 STS IDE。

注意: Spring Roo 已不再受支持; Spring Roo 的上次更新是在 2017 年,並且 倉庫 於 2018 年被歸檔。

2. 安裝 Spring Roo

要安裝 Spring Roo,您需要遵循以下步驟:

前提條件:

  • Java Development Kit (JDK) 8 或更高版本
  • Maven 或 Gradle 構建工具
  • 一個支持 Spring Boot 的 IDE (例如 IntelliJ IDEA, Eclipse)

安裝 Maven:

  1. 下載 Maven: 從 Apache 網站下載 Maven 的最新版本:https://maven.apache.org/download.html
  2. 安裝 Maven: 按照 Maven 的安裝説明進行安裝。
  3. 配置環境變量: 將 Maven 的 bin 目錄添加到系統的 PATH 環境變量中。 這允許您在任何位置運行 mvn 命令。

安裝 Gradle:

  1. 下載 Gradle: 從 Gradle 官方網站下載最新版本:https://gradle.org/releases/
  2. 安裝 Gradle: 按照 Gradle 的安裝説明進行安裝。
  3. 配置環境變量: 將 Gradle 的 bin 目錄添加到系統的 PATH 環境變量中。

使用 Maven 安裝 Spring Roo:

  1. 創建 Spring Roo 項目: 創建一個新的 Maven 項目,並添加 Spring Roo 依賴。 您可以使用 Maven Archetype 來快速創建 Spring Roo 項目。

  2. 使用 Spring Roo Archetype: 使用 spring-roo-archetype archetype 創建 Spring Roo 項目。 例如:

    mvn archetype:generate -DgroupId=com.example -DartifactId=my-roo-app -DarchetypeArtifactId=spring-roo-archetype -Dversion=1.3.10.RELEASE
    
    • groupId: 您的項目組 ID。
    • artifactId: 您的項目 ID。
    • archetypeArtifactId: Spring Roo Archetype 的 ID。
    • version: Spring Roo 的版本。
  3. 構建項目: 使用 mvn clean install 命令構建項目。

  4. 運行 Spring Roo: 運行生成的 Spring Roo 應用。 您可以使用 mvn spring-roo:run 命令來運行 Spring Roo 應用。

使用 Gradle 安裝 Spring Roo:

  1. 添加 Spring Roo 依賴: 在您的 build.gradle 文件中添加 Spring Roo 依賴。 例如:

    dependencies {
        // ...
        compile group: 'org.springframework.roo', group: 'org.springframework.roo.generator', version: '1.3.10.RELEASE'
        // ...
    }
    
  2. 構建項目: 使用 gradle build 命令構建項目。

  3. 運行 Spring Roo: 使用 gradle springRoo:run 命令運行 Spring Roo 應用。

2.1. 需求

為了遵循本教程,您需要安裝以下內容:

2.2. 安裝

下載並安裝 Java JDK 和 STS 後,需要解壓 Spring Roo 並將其添加到系統路徑中。

請創建環境變量 ROO_HOME,並將 %ROO_HOME%\bin 添加到路徑中。

為了驗證 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. 添加和配置 STS 擴展

默認情況下,STS 支持 Spring 應用的開發,幷包含可直接使用的擴展。但是,Spring Roo 擴展未包含在內。因此,我們需要手動添加它。

在 STS 中,請轉到“安裝新軟件”,並將書籤導入到“可用的軟件站點”。當前,書籤位於 %ROO_HOME%\conf 文件夾中。導入書籤後,可以直接搜索“roo”並安裝最新版本的“Spring IDE Roo Support”。最後,您將被要求重啓 STS。

對於詳細和最新的步驟,您可以隨時查看 Spring Roo 獲取入門 文檔。

在 STS 中安裝了 Roo Support 後,需要設置擴展。操作非常簡單,只需將 Roo Support 指向 %ROO_HOME% 文件夾。 同樣,Spring Roo 獲取入門 文檔提供了詳細的步驟。

現在,您可以再次轉到“窗口”應用程序菜單,並選擇“顯示 > Roo Shell”。

3. 第一個項目

3.1. 在STS中設置項目

在STS中,打開 Roo Shell 窗口,然後點擊 創建新Roo項目 圖標。這將打開 新Roo項目 窗口。

我們將項目命名為 roo,並使用 com.baeldung 作為頂級包名。我們可以保留所有其他默認值,然後繼續進行,以使用Roo創建新項目。

在STS中,這將為我們運行以下命令:

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

最簡單的方法是手動編輯 pom.xml 文件並更新 aspectj.plugin.version1.81.9

<aspectj.plugin.version>1.9</aspectj.plugin.version>

目前階段,項目應該沒有錯誤,並且會生成一些自動生成的

3.2. Roo Shell

現在是時候熟悉 Roo Shell。Spring Roo 的主要用户界面實際上是命令行!

因此,讓我們回到 Roo Shell 窗口。在其中,通過鍵入 ‘h’ 並按下 CTRL+SPACE 運行第一個命令:

roo> h

help    hint

Roo 將自動為我們提供命令建議和自動補全。我們可以輸入 ‘hi’,按下 CTRL+SPACE,Roo 將自動提示 hint 命令。

Roo Shell 的另一個強大功能是 上下文感知。例如,hint 命令的輸出將取決於之前的輸入。

現在,讓我們執行 hint 命令,看看會發生什麼:

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}]

在這一階段,我們需要執行一些命令。在每個命令之間,我們始終可以運行 hint 命令,以查看 Roo 提供的建議。這是一個非常實用的功能。

讓我們先運行命令,稍後我們會對其進行回顧:

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

現在我們準備好運行我們的應用程序。但是,讓我們回顧一下我們執行的命令,看看我們做了什麼。

首先,我們在 <em src/main/java 文件夾中創建了一個新的 JPA 持久實體。接下來,我們在 <em Book 類中創建了三個 <em String 字段,併為它們命名,並將它們設置為非 <em null。

之後,我們為指定的實體生成了 Spring Data 存儲庫,並創建了一個新的服務接口。

最後,我們包含了 Spring MVC 配置,安裝了 Thymeleaf,並創建了一個新的控制器,用於管理我們的實體。由於我們使用了 Thymeleaf 作為響應類型,因此生成的類和視圖將反映這一點。

3.3. 運行應用程序

點擊右鍵在 roo 項目上,然後選擇“作為運行 > Spring Boot 應用”。

應用程序啓動後,可以使用瀏覽器訪問 http://localhost:8080。 接下來,在 Roo 圖標上,您將看到“書本”菜單以及在其下的兩個選項:“創建書本”和“列出書本”。 您可以使用這些選項嚮應用程序添加書本並查看添加的書本列表。

3.4. 其他功能

當我們打開 <em>Book.java</em> 類文件時,會注意到該類使用了 <em>@Roo</em> 註解。這些註解是由 Roo Shell 添加的,用於控制和自定義 AspectJ 跨類型聲明 (ITD) 文件內容。可以通過在 STS 的 Package Explorer 中取消“隱藏生成的 Spring Roo ITD”過濾器來查看這些文件,或者直接從文件系統打開它們。

Roo 註解具有 <em>SOURCE</em> 保留策略。這意味着 <strong>註解不會出現在編譯後的類字節碼中</strong>,並且部署應用程序中不會依賴 Roo。

<em>Book.java</em> 類中還缺少 <em>getters</em><em>setters</em>。這些存儲在單獨的 AspectJ ITD 文件中,正如之前提到的。Roo 會主動為我們維護這些樣板代碼。因此,對任何類中字段的更改將自動反映在 AspectJ ITD 文件中,因為 Roo 在 Roo Shell 或 IDE 中直接由開發人員執行的更改時都在“監控”這些更改。

Roo 也會處理諸如 <em>toString()</em><em>equals()</em> 方法之類的重複代碼。

此外,可以通過刪除註解並將其推入標準 Java 代碼中,輕鬆地從項目移除框架,從而避免供應商鎖定。

4. 結論

在本次快速示例中,我們成功地在STS中安裝並配置了Spring Roo,並創建了一個小型項目。

我們使用Roo Shell進行設置,根本不需要編寫任何實際的Java代碼!我們能夠在幾分鐘內獲得一個可工作的應用程序原型,Roo也為我們處理了所有樣板代碼。

user avatar
0 位用戶收藏了這個故事!
收藏

發佈 評論

Some HTML is okay.