上一篇对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中项目邮件菜单可查:
页面处理流程:
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目录下