java spring roo 入门

  • 准备工作:
  1. Spring官网下载STS(如果没有STS)。

     

  • 体验步骤:
  1. 创建Spring Roo基础项目

    wKioL1LyZdeS797iAAOg4XolFMY114.jpg wKiom1LyZjSSmRGzAAbnuauFugA722.jpg

  2. 生成持久层

    根 据ROO的提示输入jpa setup再按ctrl+space,很遗憾这个快捷键已经被输入法切换占用,不能借助提示输入命令,但我们可以打开ROO命令向导,这里我们输入jpa 可以查到这条命令的用法,根据提示增加provider和database选项来完成命令。 wKiom1LyZ73gQ0_2AAM7ajzGgSk278.jpg

     

    1
    jpa setup --provider HIBERNATE --database H2_IN_MEMORY

    命令执行后我们可以看到新增加或更新以下内容:

    1)增加database.properties文件

    2)增加persistence.xml文件

    3)更新applicationContext.xml问价

    4)更新Maven依赖

    接 着再次输入hint,ROO会提示我们创建实体,我们再次打开命令向导,敲入entity,向导提示class参数是必须的,这里我们输入Card作为我 们要创建的Class,然后按Finish,ROO就会自动帮我们在顶层包下生成Card实体类,同时还会生成AspectJ的相关类,这些类主要给 ROO使用,可以先不必理会。

     

    我们假设一张卡有卡号,客户号和余额三个属性,目前Card类没有任何属性,显然不能 满足我们的需求,再次输入hint命令,ROO提示使用field命令给实体增加属性,我们依赖使用命令向导来添加这三个属性,值得注意的是可选项,有些 验证的可选项我们可以直接使用。糟糕,field命令执行不成功,原来comment的值需要加双引号.field命令很强大,如果表有关联,我们可以使 用field reference命令向导来完成。

    wKioL1LyZoiCl3PYAANKQoc2GDk282.jpg

    接 着使用repository jpa命令向导来创建一个实现CRUD操作的简单Repository,这个命令很神奇,ROO会自动使用AspectJ和Spring Data来完成基本的CRUD操作实现,而CardRepository类只是加简单的注解@RooJpaRepository(domainType = Card.class),不再需要任何实现,虽然简单方便,但也可以看出项目已经跟ROO绑定。

     

    至此我们完成了一个简单的持久层,使用命令向导还是挺方便的。

  3. 生成服务层

    再 次使用hint命令,ROO可以增加更多实体或者field,或者创建Web MVC Controller等,但没有服务层相关提示,我们可以使用命令向导,输入service,选择service type来创建服务接口CardService和实现类CardServiceImpl,命令执行后ROO也会自动生成相关的AspectJ类来维护 Repositoryde的CRUD调用,所以我们只需要再增加其它特殊操作就可以了。

  4. 生成展示层

    使用刚 才ROO提示的“web mvc setup”命令来初始化Web MVC,该命令会增加Spring MVC的支持,以及实体的操作页面、国际化、主题等支持。当然该命令要结合Controller的创建命令使用,打开命令向导,输入”web”,选 择”web mvc all”命令来为所有实体生成Controller。至此一个基本的MVC应用已经成形,可以马上“Run on server”试试效果。 wKiom1LyZwmTyveuAAIURs7q_-8075.jpg

    wKiom1LyZvLwNN-KAAFaolfoN5Y650.jpg

    wKioL1LyZs6QNa5gAAFHhuVMEvg611.jpg

    太棒了,基本的CRUD都支持了。

  5. 生成安全支持

    在从命令向导输入”security”,选择”security setup”,然后点击Finish,该命令将为我们生成一个登陆页面和基本的验证信息,太神奇了,赶快也试试吧!

    wKioL1LyZvODMkBSAAFYF19xH-M863.jpg

  • 小结:

第 一次使用还是蛮顺手,非常适合创建简单测试项目,ROO脚本可以保存成文件,这样下次直接执行就可以自动创建一个同样的项目了,另外ROO还提供了很多插 件可以帮忙简化更多开发工作,有待进一步探索,还有一点就是项目维护问题,既然代码都是自动生成的,免不了重构,不知道重构支持如何,继续考察。

Tagged: ,

Comments are closed.