Grails技术精解与开发实战
①全新正版,现货速发,7天无理由退换货②天津、成都、无锡、广东等多仓就近发货,订单最迟48小时内发出③无法指定快递④可开电子发票,不清楚的请咨询客服。
¥
49.08
7.0折
¥
69.8
全新
库存2件
作者郭宏宸 王永超 贺大庆
出版社人民邮电
ISBN9787115540515
出版时间2021-05
装帧其他
开本其他
定价69.8元
货号31135060
上书时间2024-10-13
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
郭宏宸,毕业于清华大学软件学院,硕士研究生,现任职于北京理工大学网络信息技术中心,主要从事高校信息化建设工作。具有丰富的项目开发经验,对JavaEE平台和Grails框架有深入研究。 王永超北京理工大学网络信息技术中心工程师贺大庆北京理工大学网络信息技术中心工程师
目录
第 1 章 Grails 框架简介 . . . . . . . . . . . . . . . . . . . 3
1.1 什么是 Grails 框架 . . . . . . . . . . . . . . . . . 3
1.1.1 Grails 框架的历史 . . . . . . . . . . . 3
1.1.2 Grails 框架的核心特征 . . . . . . . 4
1.1.3 Grails 框架的应用框架 . . . . . . . 5
1.1.4 Grails 框架的应用结构 . . . . . . . 6
1.2 建立开发环境 . . . . . . . . . . . . . . . . . . . . . . 7
1.2.1 安装 SDKMAN. . . . . . . . . . . . . . 7
1.2.2 安装 Java JDK . . . . . . . . . . . . . . 7
1.2.3 安装 Grails . . . . . . . . . . . . . . . . . . 8
1.2.4 安装集成开发环境 . . . . . . . . . . . 8
1.2.5 代码版本控制. . . . . . . . . . . . . . . .9
1.3 Hello Grails 示例项目. . . . . . . . . . . . . . .9
1.3.1 创建 Grails 应用. . . . . . . . . . . . . 9
1.3.2 Grails 框架应用目录结构 . . . . 10
1.3.3 创建控制器. . . . . . . . . . . . . . . . .11
1.3.4 创建模型. . . . . . . . . . . . . . . . . . . 12
1.3.5 利用脚手架特征 . . . . . . . . . . . . 15
1.4 本章小结 . . . . . . . . . . . . . . . . . . . . . . . . . 16
第 2 章 Groovy 动态语言. . . . . . . . . . . . . . . . .17
2.1 Groovy 基础 . . . . . . . . . . . . . . . . . . . . . . 17
2.1.1 Groovy 运行环境安装 . . . . . . . 17
2.1.2 基本语法. . . . . . . . . . . . . . . . . . . 20
2.1.3 数据类型. . . . . . . . . . . . . . . . . . . 23
2.1.4 运算符. . . . . . . . . . . . . . . . . . . . . 24
2.1.5 断言语句. . . . . . . . . . . . . . . . . . . 28
2.1.6 类与对象. . . . . . . . . . . . . . . . . . . 29
2.2 Groovy 集合类型. . . . . . . . . . . . . . . . . . 33
2.2.1 列表 . . . . . . . . . . . . . . . . . . . . . . . 33
2.2.2 映射 . . . . . . . . . . . . . . . . . . . . . . . 36
2.2.3 范围 . . . . . . . . . . . . . . . . . . . . . . . 38
2.2.4 集合类型的语法增强 . . . . . . . . 39
2.3 Groovy 闭包 . . . . . . . . . . . . . . . . . . . . . . 40
2.3.1 闭包声明. . . . . . . . . . . . . . . . . . . 41
2.3.2 闭包使用. . . . . . . . . . . . . . . . . . . 41
2.3.3 闭包中的参数 . . . . . . . . . . . . . . 42
2.3.4 GString 中使用闭包. . . . . . . . .43
2.3.5 闭包中的 curry() 方法. . . . . . .45
2.4 本章小结 . . . . . . . . . . . . . . . . . . . . . . . . . 46
第 2 部分 Grails 框架核心特性
第 3 章 数据访问 . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.1 对象关系映射基础 . . . . . . . . . . . . . . . . . 49
3.2 基本 CRUD 操作. . . . . . . . . . . . . . . . . .50
3.2.1 创建 . . . . . . . . . . . . . . . . . . . . . . . 50
3.2.2 读取 . . . . . . . . . . . . . . . . . . . . . . . 51
3.2.3 更新 . . . . . . . . . . . . . . . . . . . . . . . 52
3.2.4 删除 . . . . . . . . . . . . . . . . . . . . . . . 53
3.3 GORM 基础配置. . . . . . . . . . . . . . . . . . 53
3.3.1 数据源配置. . . . . . . . . . . . . . . . .53
3.3.2 配置项参考. . . . . . . . . . . . . . . . .56
3.3.3 映射与约束. . . . . . . . . . . . . . . . .57
3.3.4 Hibernate 配置 . . . . . . . . . . . . . 58
3.4 GORM 建模 . . . . . . . . . . . . . . . . . . . . . . 58
3.4.1 关联关系. . . . . . . . . . . . . . . . . . . 60
3.4.2 组合关系. . . . . . . . . . . . . . . . . . . 67
3.4.3 继承关系. . . . . . . . . . . . . . . . . . . 68
3.4.4 容器类型. . . . . . . . . . . . . . . . . . . 69
3.4.5 建模辅助. . . . . . . . . . . . . . . . . . . 71
3.5 持久化 . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
3.5.1 事务的延迟写 . . . . . . . . . . . . . . 72
3.5.2 数据保存. . . . . . . . . . . . . . . . . . . 73
3.5.3 数据删除. . . . . . . . . . . . . . . . . . . 74
3.5.4 级联删除与更新 . . . . . . . . . . . . 75
3.5.5 即时加载与延迟加载 . . . . . . . . 79
3.5.6 乐观锁与悲观锁 . . . . . . . . . . . . 83
3.5.7 修改检查. . . . . . . . . . . . . . . . . . . 85
3.6 GORM 查询 . . . . . . . . . . . . . . . . . . . . . . 86
3.6.1 list() 方法和 get() 方法. . . . . .86
3.6.2 动态查询. . . . . . . . . . . . . . . . . . . 87
3.6.3 Where 查询 . . . . . . . . . . . . . . . . 90
3.6.4 标准条件查询 . . . . . . . . . . . . . . 98
3.6.5 HQL 查询. . . . . . . . . . . . . . . . .103
3.7 GORM 高级特性. . . . . . . . . . . . . . . . . 104
3.7.1 事件与时间戳 . . . . . . . . . . . . . 105
3.7.2 自定义 ORM 映射 . . . . . . . . . 109
3.7.3 默认排序. . . . . . . . . . . . . . . . . .109
3.7.4 编程式事务. . . . . . . . . . . . . . . .110
3.8 数据服务层 . . . . . . . . . . . . . . . . . . . . . . 112
3.8.1 Data Service 基础 . . . . . . . . . 112
3.8.2 查询操作. . . . . . . . . . . . . . . . . .116
3.8.3 写操作. . . . . . . . . . . . . . . . . . . . 120
3.8.4 参数校验. . . . . . . . . . . . . . . . . .121
3.9 多数据源 . . . . . . . . . . . . . . . . . . . . . . . . 121
3.9.1 配置多数据源 . . . . . . . . . . . . . 122
3.9.2 模型与数据源映射 . . . . . . . . . 122
3.9.3 多数据源使用 . . . . . . . . . . . . . 124
3.10 多租户 . . . . . . . . . . . . . . . . . . . . . . . . . 125
3.10.1 多租户模式 . . . . . . . . . . . . . . 125
3.10.2 配置. . . . . . . . . . . . . . . . . . . . . 126
3.10.3 使用多租户 . . . . . . . . . . . . . . 126
3.11 数据约束 . . . . . . . . . . . . . . . . . . . . . . . 129
3.11.1 定义约束. . . . . . . . . . . . . . . . .130
3.11.2 约束总结. . . . . . . . . . . . . . . . .131
3.12 本章小结 . . . . . . . . . . . . . . . . . . . . . . . 132
第 4 章 控制器 . . . . . . . . . . . . . . . . . . . . . . . . . . 133
4.1 控制器与动作 . . . . . . . . . . . . . . . . . . . . 133
4.2 视图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
4.2.1 创建视图参数模型 . . . . . . . . . 134
4.2.2 选择视图文件 . . . . . . . . . . . . . 135
4.2.3 多样化响应. . . . . . . . . . . . . . . .137
4.3 作用域变量 . . . . . . . . . . . . . . . . . . . . . . 138
4.4 重定向 . . . . . . . . . . . . . . . . . . . . . . . . . . 142
4.4.1 redirect() 方法 . . . . . . . . . . . . 142
4.4.2 chain() 方法. . . . . . . . . . . . . . .143
4.5 数据绑定 . . . . . . . . . . . . . . . . . . . . . . . . 144
4.5.1 绑定基本数据类型属性 . . . . . 145
4.5.2 绑定集合类型属性 . . . . . . . . . 147
4.5.3 绑定请求数据 . . . . . . . . . . . . . 150
4.5.4 Action 参数绑定. . . . . . . . . . . 151
4.5.5 bindData() 方法 . . . . . . . . . . . 152
4.6 XML 与 JSON 响应 . . . . . . . . . . . . . . 154
4.6.1 内容协商. . . . . . . . . . . . . . . . . .154
4.6.2 使用 format 参数指定请求的内容格式 . . . . . . . . . . . . . . . . . 156
4.6.3 使用 Accept header 指定请求格式 . . . . . . . . . . . . . . . . . . . . . 157
4.6.4 使用 URL 扩展名指定请求格式 . . . . . . . . . . . . . . . . . . . . . 157
4.6.5 使用 respond 返回请求数据 . . . . . . . . . . . . . . . . . . . . . 157
4.6.6 使用 JSON Views 输出数据 . . . . . . . . . . . . . . . . . . . . . 158
4.6.7 使用 render() 方法返回JSON . . . . . . . . . . . . . . . . . . . . 159
4.7 命令对象 . . . . . . . . . . . . . . . . . . . . . . . . 159
4.7.1 定义命令对象 . . . . . . . . . . . . . 159
4.7.2 使用命令对象 . . . . . . . . . . . . . 161
4.7.3 命令对象与请求参数名称 . . . 163
4.7.4 命令对象与请求体绑定 . . . . . 165
4.8 异常处理 . . . . . . . . . . . . . . . . . . . . . . . . 166
4.9 URL 映射 . . . . . . . . . . . . . . . . . . . . . . . 167
4.9.1 控制器与方法的映射 . . . . . . . 168
4.9.2 使用 URL 映射进行重定向 . . . . . . . . . . . . . . . . . . . . . 169
4.9.3 绑定变量. . . . . . . . . . . . . . . . . .169
4.9.4 视图以及请求、响应映射 . . . 171
4.9.5 映射中的 URL 通配符. . . . . .172
4.9.6 链接自动重写 . . . . . . . . . . . . . 173
4.9.7 映射中添加约束 . . . . . . . . . . . 173
4.10 拦截器 . . . . . . . . . . . . . . . . . . . . . . . . . 174
4.10.1 拦截条件配置 . . . . . . . . . . . . 175
4.10.2 拦截器优先级配置 . . . . . . . . 176
4.11 本章小结 . . . . . . . . . . . . . . . . . . . . . . . 176
第 5 章 GSP 页面展示. . . . . . . . . . . . . . . . . . .178
5.1 GSP 基础 . . . . . . . . . . . . . . . . . . . . . . . 178
5.2 GSP 标签 . . . . . . . . . . . . . . . . . . . . . . . 180
5.2.1 GSP 标签基本用法 . . . . . . . . 181
5.2.2 调用标签. . . . . . . . . . . . . . . . . .184
5.3 视图与模板 . . . . . . . . . . . . . . . . . . . . . . 185
5.3.1 共享模板. . . . . . . . . . . . . . . . . .185
5.3.2 在控制器中使用模板 . . . . . . . 186
5.4 布局 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
5.5 静态资源 . . . . . . . . . . . . . . . . . . . . . . . . 188
5.6 自定义标签 . . . . . . . . . . . . . . . . . . . . . . 190
5.6.1 逻辑控制. . . . . . . . . . . . . . . . . .192
5.6.2 循环显示. . . . . . . . . . . . . . . . . .192
5.6.3 标签命名空间 . . . . . . . . . . . . . 193
5.7 脚手架 . . . . . . . . . . . . . . . . . . . . . . . . . . 193
5.7.1 动态脚手架. . . . . . . . . . . . . . . .194
5.7.2 静态脚手架. . . . . . . . . . . . . . . .194
5.8 国际化 . . . . . . . . . . . . . . . . . . . . . . . . . . 195
5.8.1 读取消息. . . . . . . . . . . . . . . . . .195
5.8.2 消息参数. . . . . . . . . . . . . . . . . .196
5.9 本章小结 . . . . . . . . . . . . . . . . . . . . . . . . 197
第 6 章 服务层 . . . . . . . . . . . . . . . . . . . . . . . . . . 198
6.1 服务层基础 . . . . . . . . . . . . . . . . . . . . . . 198
6.2 Service 作用域 . . . . . . . . . . . . . . . . . . . 199
6.3 事务处理 . . . . . . . . . . . . . . . . . . . . . . . . 200
6.3.1 使用事务. . . . . . . . . . . . . . . . . .200
6.3.2 事务与 session . . . . . . . . . . . . . 202
6.4 依赖注入 . . . . . . . . . . . . . . . . . . . . . . . . 204
6.5 本章小结 . . . . . . . . . . . . . . . . . . . . . . . . 205
第 7 章 测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
7.1 测试框架 Spock . . . . . . . . . . . . . . . . . . 207
7.2 单元测试 . . . . . . . . . . . . . . . . . . . . . . . . 208
7.3 集成测试 . . . . . . . . . . . . . . . . . . . . . . . . 211
7.3.1 事务. . . . . . . . . . . . . . . . . . . . . . 212
7.3.2 注入. . . . . . . . . . . . . . . . . . . . . . 212
7.4 功能测试 . . . . . . . . . . . . . . . . . . . . . . . . 213
7.4.1 Geb . . . . . . . . . . . . . . . . . . . . . . 213
7.4.2 REST 接口测试 . . . . . . . . . . . 214
7.5 本章小结 . . . . . . . . . . . . . . . . . . . . . . . . 215
第 8 章 插件体系 . . . . . . . . . . . . . . . . . . . . . . . . 217
8.1 创建插件 . . . . . . . . . . . . . . . . . . . . . . . . 217
8.1.1 开发插件. . . . . . . . . . . . . . . . . .219
8.1.2 使用插件与发布插件 . . . . . .
— 没有更多了 —
以下为对购买帮助不大的评价