Spring Roo学习札记(1)——介绍

Spring Roo学习笔记(1)——介绍

Roo is not a runtime:只介入开发过程,这点我很喜欢。

Roo is not an IDE plugin:可以用eclipse的STS插件,但不依赖于IDE,好处是更新或者切换版本时不至于太突兀,这点用过某XXStudio就感同身受了。

Roo is not an annotation processing library:Roo不会使用java的api来处理ann,也就是说它都不介入compile阶段,它只是把java文件当文本文件来处理里面的ann。

 

万恶的maven再次出现,Roo构建出来的project是基于pom结构的。Spring Roo学习札记(1)——介绍

 

10分钟构建一个web app:

  1. 在eclipse的new wizard中新建一个Roo项目——ten-minutes,相当于先建立一个ten-minutes目录,然后在该目录下使用roo命令,并在roo提示符下运行 roo> project --topLevelPackage hale.roo.tenminutes
    Spring Roo学习札记(1)——介绍
     
    Spring Roo学习札记(1)——介绍
     
    Spring Roo学习札记(1)——介绍
    Spring Roo学习札记(1)——介绍
     
     
  2. 使用hint命令后,ROO会告诉你下一步该做啥
    Spring Roo学习札记(1)——介绍
     
  3. 选择需要使用的JPA和database,使用roo> persistence setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY
  4. 新建Entity,使用roo> entity --class ~.domain.Timer --testAutomatically (~在roo的命令行里代表top package name)
  5. 对Timer对象新增message属性,使用 roo> field string --fieldName message --notNull
  6. 对所有实体对象建立控制器,使用 roo> controller all --package ~.web
  7. 为controller建立selenium的自动化web测试脚本,使用 roo> selenium test --controller ~.web.TimerController
  8. 执行tester,使用 roo> perform tests 在target目录下生成surefire-reports/TEST-hale.roo.tenminutes.domain.TimerIntegrationTest.xml的junit的report(该命令相当于mvn:test
  9. 打包,使用 roo> perform package 在target目录下生成ten-minutes-0.1.0.BUILD-SNAPSHOT.war (该命令相当于mvn:package
  10. 运行项目,进入ten-minutes 目录下运行mvn tomcat:run , 然后通过http://localhost:8080/ten-minutes 访问app
  11. 自动化测试,进入ten-minutes目录下运行mvn selenium:selenese

由于万恶的maven,导致整个过程远远大于10分钟。Spring Roo学习札记(1)——介绍

 

可以将上述一系列roo命令编制成一个sciprt文件批量执行,使用roo> script --file filename.roo

roo> perform eclipse 相当与 mvn eclipse:eclipse ,可以把项目转化为eclipse项目

roo> gwt setup 还可以在web层使用gwtSpring Roo学习札记(1)——介绍

roo的perform命令可以被相应的maven命令替换。