文章目录
[隐藏]

一、概述

Spring Roo是基于Java语言快速创建应用的强大开源工具,它来源于SpringSource,能够快速创建和管理基于Spring的Web应用,其目的是提高Java开发人员的生产效率。Spring Roo使用Spring、Java Persistence API(Java 持久层API)、Hibernate、AspectJ、Spring Security、Spring Web Flow、Log4J 和 Maven等成熟可靠的库,快速声场数据库、连接池、模板、logging等组件的配置文件,当然还有POJO的CRUD代码。

利用Spring Roo可以敏捷开发Web项目,但项目不会依赖与Spring  Roo。通常情况下,我们可以利用Spring Roo快速构建MVC工程,自动生成代码,然后导入到STS/Eclipse/IntelliJ等IDE中继续开发,然后根据实际的业务逻辑和个人编码习惯进行改造,当需要增加模型、Service层、Controller层时,执行一行Roo命令就可以快速完成需求。

二、快速构建

2.1 安装配置

系统环境:默认已安装好Jdk1.8和Maven 3.3。

去官网下载安装包:https://projects.spring.io/spring-roo/#running-from-shell

解压,然后将bin路径加入到系统变量Path中,比如C:\spring-roo-2.0.0.RC1\bin,然后在CMD中执行roo命令即可进入Spring Roo的命令行模式,如下:

另外,在Eclipse或STS中安装Roo插件即可集成到IDE中,依次进入Eclipse->Help->Install new Software-Add , 添加如下安装源:Roo – http://dist.springsource.com/release/TOOLS/update/e4.6/,进行安装即可。

安装完成后重启,然后配置安装目录:Windows ->Preferences-> Spring-> Roo Support。

然后打开控制台即可:

 

2.2 常用命令

  • help:查询所有帮助,非常详细
  • project:创建一个新的工程
  • class :创建Java类
  • interface:创建接口
  • entity: 创建jpa的数据模型对象,映射到数据表
  • field:创建entity的属性,映射到数据库表的字段
  • persistence:持久化的配置
  • perform :平台的相关配置,可以配置eclipse或IDEA
  • web:Web项目中一些配置:可以自动创建Controller层、Service层,配置MVC
  • security:配置Spring Security
  • logging:配置日志
  • properties:熟悉文件的配置
  • focus:确定工作的类,可以设置属性,无需输入全称
  • quit或exit:退出
  • version:Roo版本

另外,命令行中的按Tab或Ctrl+Space可以自动补全,非常有用。

2.3 快速构建

创建一个项目

数据持久化配置

配置数据库参数:

创建数据实体模型及其属性

其他数据实体可以同样设置,也可以不先设置,可以到IDE里面进行设置。

安装MVC,会自动生成MVC的相关配置:webapp下的image/css、WEB-INF下views(前端页面)、tags(标签)、i18n(国际化配置)、spring(spring-mvc配置文件)、web.xml等文件

为数据实体生成controller层以及view层,之前的controller命令已经弃用

业务逻辑比较复杂的话,还可以引入servcie层进行解耦,执行以下命令,创建service代码:

安装Spring Security

好了,一个MVC项目已经构建好了,查看生成好Maven工程下,目录下只有src/、log.roo(我们执行成功的所有roo命令都在里面)和pom.xml,现在利用mvn命令构建安成eclipse格式

然后导入到STS中,目录结构如下:

添加到Tomcat或Pivotal下,启动容器,JPA借助Hibernate的hbm2ddl工具会自动查找数据实体的元数据,自动成对应的数据库表,当你更新数据模型属性时,后台打开Roo控制台,就会自动更新数据,重启Tomcat然后就能自动更新数据库。

2.3 其他配置

配置页面,替换掉默认的登录页面,完成登录功能。

TODO

三、参考文档

《Spring Roo 1.1 Cookbook》

https://docs.spring.io/spring-roo/docs/current/reference/html/

https://docs.spring.io/spring-roo/reference/html/base-layers.html

https://www.ibm.com/developerworks/cn/opensource/os-springroo1/index.html