Spring Roo 2 使用分析

上一篇对Roo进行了简要的介绍,本节结合参考文档对其使用进行简要分析
数据实体和关系设计

命令执行后,生成一系列的: 实体名_Roo_***.aj的文件,这些文件通过STS编译进输出的包中

Entity

A.9. Entity Commands

建立实体类

entity --class ~.domain.Speaker

field

A.11. Field Commands

建立字段

field number --type java.lang.Long --fieldName age --min 25 --max 60

建立关系

field reference

field set

有ONE_TO_MANY MANY_TO_ONE ONE_TO_ONE MANY_TO_MANY

关系使用注意:

Field reference/ set fetch

EAGER/LAZY 使用需要谨慎,防止一次加载很多的关联对象,消耗内存,默认为LAZY,按需加载

关系的级联删除问题 @ManyToOne(cascade=CascadeType.PERSIST)

参考:192.168.0.9\Share\book\Java框架\Pro JPA 2.pdf

finder

A.12. Finder Commands

每个实体默认提供很多的finder,能够实现查找的用途

finder list –class * 可以列出当前的实体的finder方法

finder add 可以启动上面的列表中任意一个方法,这样就不用手工写

控制器

A.4. Controller Commands

controller all --package

所有的实体生成Scaffold controllers

controller scaffold --class

针对某个实体生成控制器

可以选择create, update, delete

视图的处理简析

控制器命令会自动生成一系列的视图

以实体Demo为例,其控制器生成在

DemoController.java 和 DemoController_Roo_Controller_**.aj等文件中

同时在

ApplicationConversionServiceFactoryBean.java

ApplicationConversionServiceFactoryBean_Roo_ConversionService.aj

中进行登记

默认生成的控制器请求映射参考:10.1. Controller commands,STS的IDE中项目邮件菜单可查:

image

页面处理流程:

1、 浏览器提交的请求首先按照控制器的规则进行路由到某个控制器上

2、 控制器根据具体的请求格式,具体工作如下:

a) 参数的映射:将浏览器的请求对应成具体的函数参数

b) 调用业务逻辑处理,处理的结果放置在这些org.springframework.ui.Model org.springframework.ui.ModelMap 对象中,然后指定要返回的视图名字

3、 框架使用Apche Tiles找到对应的视图页面(默认jsp和jspx),绑定上面步骤的数据进行显示

a) 具体约定在views.xml具体设置

b) 默认的页面使用了JSTL(TagLib,之所以使用taglib就是为了重用,因为每个实体都可以使用),进行处理,这些标签放在tags目录下

原文地址:https://www.cnblogs.com/2018/p/2209408.html