Spring Roo First Step


##前提条件
[SpringSource Tool Suite](http://www.springsource.com/developer/sts)がインストールされていること
->Eclipseのプラグインよりスタンドアロンで動作するやつの方がいいです。
スタンドアロンのやつをインストールすると、RooとMaven3ももれなく一緒にインストールされます。
以下の４フォルダができてる
apache-maven-3.0.3
sts-2.9.2.RELEASE
spring-roo-1.2.1.RELEASE
vfabric-tc-server-developer-2.7.0.RELEASE

##First Step

//プロジェクトを動作するためのフォルダを作成する。
mkdir sample

//プロジェクトに移動
cd sample

//Spring Rooを起動する。
//このコマンドが効かない人はパス[/spring-roo-1.2.1.RELEASE/bin/roo.sh]が通っていない。
>roo

//知っておくと便利コマンド
//とりあえず、次に何をやればいいかわからなくなったらhintコマンドをうってみる。
roo>hint

```
Welcome to Roo! We hope you enjoy your stay!

Before you can use many features of Roo, you need to start a new project.

To do this, type 'project' (without the quotes) and then hit TAB.

Enter a --topLevelPackage like 'com.mycompany.projectname' (no quotes).
When you've finished completing your --topLevelPackage, press ENTER.
Your new project will then be created in the current working directory.

Note that Roo frequently allows the use of TAB, so press TAB regularly.
Once your project is created, type 'hint' and ENTER for the next suggestion.
You're also welcome to visit http://forum.springframework.org for Roo help.
```

//プロジェクトを作成してあげる。
//指定するものはプロジェクトのパッケージ名
roo> project --topLevelPackage jp.sts.sample --java 6

```
Created ROOT/pom.xml
Created SRC_MAIN_RESOURCES
Created SRC_MAIN_RESOURCES/log4j.properties
Created SPRING_CONFIG_ROOT
Created SPRING_CONFIG_ROOT/applicationContext.xml
```

//使用するデータベースの設定をする。
//とりあえずインメモリDBを使う。
roo>persistence setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY

```
Created SPRING_CONFIG_ROOT/database.properties
Updated SPRING_CONFIG_ROOT/applicationContext.xml
Created SRC_MAIN_RESOURCES/META-INF/persistence.xml
Updated ROOT/pom.xml [added dependencies org.hsqldb:hsqldb:1.8.0.10, org.hibernate:hibernate-core:3.6.9.Final, org.hibernate:hibernate-entitymanager:3.6.9.Final, org.hibernate.javax.persistence:hibernate-jpa-2.0-api:1.0.1.Final, commons-collections:commons-collections:3.2.1, org.hibernate:hibernate-validator:4.2.0.Final, javax.validation:validation-api:1.0.0.GA, cglib:cglib-nodep:2.2.2, javax.transaction:jta:1.1, org.springframework:spring-jdbc:${spring.version}, org.springframework:spring-orm:${spring.version}, commons-pool:commons-pool:1.5.6, commons-dbcp:commons-dbcp:1.3]
```

//ドメイン名を指定する。
roo> entity jpa --class ~.domain.sample

```
Created SRC_MAIN_JAVA/jp/sts/sample/domain
Created SRC_MAIN_JAVA/jp/sts/sample/domain/Sample.java
Created SRC_MAIN_JAVA/jp/sts/sample/domain/Sample_Roo_Configurable.aj
Created SRC_MAIN_JAVA/jp/sts/sample/domain/Sample_Roo_ToString.aj
Created SRC_MAIN_JAVA/jp/sts/sample/domain/Sample_Roo_Jpa_ActiveRecord.aj
Created SRC_MAIN_JAVA/jp/sts/sample/domain/Sample_Roo_Jpa_Entity.aj
```

//ドメインのフィールド名を指定する。
~.domain.Sample roo> field string --fieldName sample

```
Updated SRC_MAIN_JAVA/jp/sts/sample/domain/Sample.java
Created SRC_MAIN_JAVA/jp/sts/sample/domain/Sample_Roo_JavaBean.aj
```

//mvcのもろもろを作成してあげる。
~.domain.Sample roo> web mvc setup

```
Created ROOT/src/main/webapp/WEB-INF/spring
Created ROOT/src/main/webapp/WEB-INF/spring/webmvc-config.xml
Created ROOT/src/main/webapp/WEB-INF/web.xml
Updated ROOT/src/main/webapp/WEB-INF/spring/webmvc-config.xml
Updated ROOT/pom.xml [added dependencies org.springframework:spring-webmvc:${spring.version}, org.springframework.webflow:spring-js-resources:2.2.1.RELEASE, commons-digester:commons-digester:2.1, commons-fileupload:commons-fileupload:1.2.2, javax.servlet.jsp.jstl:jstl-api:1.2, org.glassfish.web:jstl-impl:1.2, javax.el:el-api:1.0, joda-time:joda-time:1.6, javax.servlet.jsp:jsp-api:2.1, commons-codec:commons-codec:1.5; updated project type to war; added dependency org.apache.tiles:tiles-jsp:2.2.2]
Updated SRC_MAIN_WEBAPP/WEB-INF/views/footer.jspx
```

//mvc のもろもろを作成してあげる。
~.domain.Sample roo> web mvc all --package ~.web

```
Created SRC_MAIN_JAVA/jp/sts/sample/web
Created SRC_MAIN_JAVA/jp/sts/sample/web/SampleController.java
Updated SRC_MAIN_WEBAPP/WEB-INF/spring/webmvc-config.xml
Created SRC_MAIN_JAVA/jp/sts/sample/web/ApplicationConversionServiceFactoryBean.java
Created SRC_MAIN_WEBAPP/WEB-INF/views/samples
Created SRC_MAIN_WEBAPP/WEB-INF/views/samples/views.xml
Updated SRC_MAIN_WEBAPP/WEB-INF/views/samples/views.xml
Updated SRC_MAIN_WEBAPP/WEB-INF/i18n/application.properties
Created SRC_MAIN_JAVA/jp/sts/sample/web/SampleController_Roo_Controller.aj
Created SRC_MAIN_WEBAPP/WEB-INF/views/samples/list.jspx
Created SRC_MAIN_WEBAPP/WEB-INF/views/samples/show.jspx
Created SRC_MAIN_WEBAPP/WEB-INF/views/samples/create.jspx
Updated SRC_MAIN_WEBAPP/WEB-INF/views/menu.jspx
Created SRC_MAIN_WEBAPP/WEB-INF/views/samples/update.jspx
Created SRC_MAIN_JAVA/jp/sts/sample/web/ApplicationConversionServiceFactoryBean_Roo_ConversionService.aj
```

~.domain.Sample roo>quit
>mvn tomcat:run

以下のURLに接続すればOK
[http://localhost:8080/sample/](http://localhost:8080/sample/)

//プロジェクトをEclipseプロジェクトにするにはmvnでやってあげる
>mvn eclipse:eclipse