1概要

Spring Rooは、Spring Webアプリケーションと新しいSpringテクノロジに焦点を絞った迅速かつ即時の結果を提供することを目的としたRapid Application Development(RAD)ツールです。これにより、Springアプリケーション用の定型コードとプロジェクト構造を、使いやすいコマンドで生成することができます。

Rooは、オペレーティングシステムのコマンドラインから実行されるスタンドアロンアプリケーションとして使用できます。 Eclipse、Spring Tool Suite(STS)、その他のIDEを使う必要はありません。実際、私たちはコードを書くためにどんなテキストエディタでも使うことができます!

ただし、簡単にするために、Roo Extensionと共にSTS IDEを使用します。


2 Spring Roo

のインストール


2.1. 必要条件

このチュートリアルに従うには、これらをインストールする必要があります。

JDK 8]。

STS


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 Extension

の追加と設定

すぐに使えるSTSは、Springアプリケーションの開発をサポートし、すぐに使える拡張機能を含みます。ただし、Spring Rooの拡張機能は含まれていません。そのため、手動で追加する必要があります。

STSで、[新しいソフトウェアのインストール]に進み、[利用可能なソフトウェアサイト]にブックマークをインポートします。現在、ブックマークは

%ROO

HOME%\ conf

フォルダーにあります。ブックマークをインポートしたら、単に

roo

を検索して、最新バージョンの

Spring IDE Roo Support__をインストールします。最後に、STSを再起動するように求められます。

詳細で最新の手順については、http://docs.spring.io/spring-roo/docs/2.0.x/reference/html/#getting-started-requirementsを参照してください。]ドキュメンテーション。

STSにRoo Supportをインストールしたら、拡張機能を設定する必要があります。 Roo Supportから

%ROO

HOME%__フォルダを指すのと同じくらい簡単です。

繰り返しますが、http://docs.spring.io/spring-roo/docs/2.0.x/reference/html/#getting-started-requirements[Spring Roo Getting Started]に詳細な手順があります。

今度はもう一度「ウィンドウ」アプリケーションメニューに行き、__Show View> Roo Shellを選択します。


3最初のプロジェクト


3.1. STSでプロジェクトを設定する

STSで

Roo Shell

ウィンドウを開き、

Create New Roo Project

アイコンをクリックしましょう。これにより、[New Roo Project]ウィンドウが開きます。

このプロジェクトに

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.versionを

1.8

から

1.9__に更新することです:

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

この段階では、プロジェクトにエラーがあってはいけません。自動生成されたファイルもいくつかあります。


3.2. ルーシェル

それでは、Roo Shellに慣れる番です。 Spring Rooの主なユーザーインターフェースは、実際にはコマンドプロンプトです。

そのため、Roo Shellウィンドウに戻りましょう。その中で、最初のコマンドを実行するには、「h」と入力してCtrl + Spaceキーを押します。

roo> h

help    hint

Rooは自動的にコマンドを提案してオートコンプリートします。 「hi」と入力してCTRL + SPACEを押すと、Rooが

hint

コマンドを自動提案します。

Roo Shellのもう1つの優れた機能は、

コンテキストアウェアネス

です。たとえば、

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

この段階で、いくつかのコマンドを実行する必要があります。それぞれの間で、Rooが何を提案しているのかを見るために__hint__コマンドをいつでも実行できます。

これはとても便利な機能です。

** 最初にコマンドを実行しましょう** その後、それらを見ていきます。

[source,shell,gutter:,true]

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

これでアプリケーションを実行する準備が整いました。しかし、私たちが行ったことを確認するためにコマンドを遡ってみましょう。

まず、__src/main/java__フォルダーに新しいJPA永続エンティティを作成しました。次に、__Book__クラスに3つの__String__フィールドを作成し、それらに名前を付けて、__null__ではないように設定しました。

その後、指定したエンティティ用のSpring Dataリポジトリを生成し、新しいサービスインターフェイスを作成しました。

最後に、Spring MVCの設定、Thymeleafのインストール、そしてエンティティを管理する新しいコントローラの作成を行いました。 Thymeleafをレスポンスタイプとして渡したので、生成されたメソッドとビューはこれを反映します。

====  **  3.3. アプリケーションの実行**

プロジェクトを更新して__roo__プロジェクトを右クリックし、__Run As> Spring Boot App__を選択します。

アプリケーションが起動したら、Webブラウザを開いてhttp://localhost:8080にアクセスします。次に、Rooアイコンの下に__Book__メニューが表示され、2つのオプションの下に__Create Book__と__List Books__が表示されます。これを使用して、アプリケーションに本を追加したり、追加した本のリストを表示したりできます。

====  **  3.4. その他の機能**

__Book.java__クラスファイルを開くと、クラスに__ @ Roo__アノテーションが付いていることがわかります。これらはRoo Shellによって追加され、AspectJ型間宣言(ITD)ファイルの内容を制御およびカスタマイズするために使用されます。 STSの[パッケージ・エクスプローラー]で[表示]メニューの[生成されたSpring Roo ITDを隠す]フィルターをオフにしてファイルを表示するか、ファイルシステムから直接ファイルを開くことができます。

Rooアノテーションは__SOURCE__アイテム保持ポリシーを持っています。つまり、** アノテーションはコンパイル済みクラスのバイトコード** には含まれず、デプロイされたアプリケーションでRooに依存することはありません。

__Book.java__クラスに欠けているもう1つの部分は、__getters__と__setters__です。すでに述べたように、これらは別々のAspectJ ITDファイルに格納されています。 Rooはこの定型コードを積極的に管理します。したがって、Rooはすべての変更を「監視」しているため、Roo Shellを介して、またはIDEの開発者によって直接行われるため、どのクラスのフィールドに対する変更もAspectJ ITDに自動的に反映されます。

Rooは__toString()__や__equals()__メソッドのような繰り返しコードの世話をします。

さらに、アノテーションを削除してAspectJ ITDを標準のJavaコードにプッシュインすることで、フレームワークをプロジェクトから簡単に削除でき、ベンダーによる固定を回避できます。

===  **  4結論**

この簡単な例では、Spring RooをSTSにインストールして構成し、小さなプロジェクトを作成しました。

Roo Shellを使って設定したので、実際のJavaコードを1行も書く必要はありませんでした。そして、数分で実用的なアプリケーションのプロトタイプを入手することができ、Rooがすべての定型コードを管理しました。

いつものように、議論を通して使われたコードはhttps://github.com/eugenp/tutorials/tree/master/spring-roo[GitHubに乗って]を見つけることができる。