《Grails權威指南》是2007年電子工業出版社出版的圖書,作者是瑞切。本書詳細講解Grails開發的全部過程,包括項目構架、控制器與視圖、與關係資料庫之間的ORM映射,以及與Ajax和Java平台的無縫集成。同時該書也揭示了Grails對Java Web開發領域極大的推動作用。
基本介紹
- 書名:Grails權威指南
- 作者:瑞切
- 原版名稱:The Definitive Guide to Grails
- 譯者:張若飛
- ISBN:9787121052019
- 頁數:318
- 定價: 49.80元
- 出版社:電子工業
- 出版時間:2007-11
內容簡介,作者簡介,圖書目錄,
內容簡介
《Grails權威指南》譯自由Grails項目負責人Graeme Keith Rocher編寫的《The Definitive Guide to Grails》,著重介紹了如何在Grails框架下使用Groovy語言進行敏捷的Web開發。
英文原版自出版後本書一共分為11章,所介紹的內容主要包括:Grails的目的與優勢、Groovy語言基礎與高級特性、Grails的工程項目結構、根據領域模型自動創建Web程式、在Grails中實現單元測試和功能測試、控制器的使用、Grails的高級視圖技術GSP、在Grails中使用Ajax增強用戶體驗、Grails的高級特性及與Java的無縫集成。
作者簡介
GRAEME KEITH ROCHER是Skills Matter,專注於開源技術和敏捷軟體開發的技術傳播公司)的軟體架構師與技術部負責人。作為開源社區的多領域專家之一,他在各種會議上進行有關Groovy、Grails以及Java動態語言等話題的演講。
看到了web服務及其實現複雜功能的增長趨勢,Graeme著手開發_上個能夠加以簡化的項目,這就是Grails。Grails框架本身來源於Ruby on Rails,但是目標在於與Java的緊密集成。在Skills Matter之前,Graeme還在Knowledge Pool工作過。在那裡他使用Groovy開發了一種名為Originate的快速電子學習開發工具。Originate使用Groovy將多種技術融合到一起,其中包括Visual Basic、Microsoft Word、XSLT、Javascript和xSL—FO。
看到了web服務及其實現複雜功能的增長趨勢,Graeme著手開發_上個能夠加以簡化的項目,這就是Grails。Grails框架本身來源於Ruby on Rails,但是目標在於與Java的緊密集成。在Skills Matter之前,Graeme還在Knowledge Pool工作過。在那裡他使用Groovy開發了一種名為Originate的快速電子學習開發工具。Originate使用Groovy將多種技術融合到一起,其中包括Visual Basic、Microsoft Word、XSLT、Javascript和xSL—FO。
圖書目錄
第1章 尋找Grails之旅
1.1 Java的困惑
1.2 Webc2.0時代
1.3 Java的力量
1.4 什麼是Grails
1.4.1 與Java集成
1.4.2 簡單而強大
1.4.3 吸取的經驗教訓
1.5 使用Grails的原因
1.6 Grails入門
1.6.1 運行Grails命令
1.6.2 義不容辭的“HellocWorld!”
1.7 單元測試
1.8 本章小結
第2章 Groovy動態語言
2.1 Groovy和Java的異同
2.1.1 相同點
2.1.2 不同點
2.2 基礎知識
2.1.1 類聲明
2.2.2 語言級斷言(Assertion)
2.2.3 Groovy字元串
2.2.4 閉包(Closures)
2.2.5 列表(List)和映射(Map)
2.2.6 Expando動態對象
2.2.7 範圍(Range)
2.3 Groovy的高級特性
2.3.1 一切都是對象
2.3.2 元編程(Metaprogramming)
2.3.3 生成器(Builder)
2.4 本章小結
第3章 Grails工程基礎架構
3.1 Grails工程結構
3.2 Grails和MVC模式
3.2.1 MVC中的模型(M)
3.2.2 MVC中的視圖(V)
3.2.3 MVC中的控制器(C)
3.2.4 除MVC之外的其他部分
3.3 Grails支持多種環境
3.4 數據源配置
3.4.1 支持的資料庫
3.4.2 配置自定義方言(Dialect)
3.5 引導Grails應用程式
3.6 配置日誌(Logging)
3.6.1 啟用SQL日誌
3.6.2 日誌記錄(Logging)和環境
3.7 Grails命令行工具
3.7.1 在不同的連線埠上運行Grails應用程式
3.7.2 打包war存檔檔案(WARcArchive)
3.8 使用Grails控制台(Console)及命令解釋程式(Shell)
3.8.1 使用命令行Shell
3.8.2 Grails控制台(Console)
3.9 IDE集成
3.9.1 安裝Groovy-Eclipse外掛程式
3.9.2 導入Grails工程
3.9.3 在Eclipse中運行Grails應用程式
3.10 本章小結
第4章 Grails中的域(Domain)
4.1 簡化的ORM和Grails對象關係映射(GORM)
4.2 GORM基礎
4.3 設定屬性可選
4.4 GORM中的關係
4.5 執行CRUD操作
4.5.1 創建書籤
4.5.2 讀取書籤
4.5.3 更新書籤
4.5.4 刪除書籤
4.6 查詢領域模型(DomaincModel)
4.6.1 使用get方法和exists方法進行基本查詢
4.6.2 列舉(Listing),70排序(Sorting)以及合計(Counting)
4.6.3 用動態查找器(Finder)查詢
4.6.4 使用HQL進行查詢
4.6.5 按樣本(Example)查詢
4.6.6 使用條件(Criteria)查詢
4.7 映射繼承
4.8 驗證領域(Domain)模型
4.8.1 使用域約束(Domainonstraints)
4.8.2 驗證約束(Constraints)
4.8.3 自定義約束(Constraints)
4.8.4 回顧更新操作
4.9 本章小結
第5章 腳手架(Scaffolding)
5.1 動態腳手架
5.1.1 創建操作(Create)
5.1.2 讀取操作(Read)
5.1.3 更新操作(Update)
5.1.4 刪除操作(Delete)
5.1.5 重寫(Overriding)CRUD操作
5.1.6 使用約束自定義欄位.
5.2 靜態腳手架
5.2.1 生成控制器(Controller)
5.2.2 生成視圖(Views)
5.3 本章小結
第6章 測試
6.1 編寫高效的單元測試
6.1.1 使用assert關鍵字
6.1.2 使用測試數據
6.1.3 探索GroovyTestCase
6.1.4 測試實踐
6.2 使用Mocks和Stubs
6.2.1 Mock實戰
6.2.2 使用閉包修整(Closureurrying)定義測試數據
6.3 使用WebTest進行功能測試
6.3.1 安裝WebTest
6.3.2 生成Web測試
6.3.3 執行Web測試
6.3.4 與表單互動
6.4 本章小結
第7章 Grails控制器(Controller)
7.1 控制器介紹
7.2 設定默認操作
7.3 訪問Request屬性
7.3.1 使用日誌(Logging)
7.3.2 處理request參數
7.3.3 理解Flash作用域
7.4 創建模型(Model)
7.5 數據綁定和類型轉換
7.5.1 用領域模型(DomaincModel)進行數據綁定
7.5.2 使用bindData方法進行數據綁定
7.6 用重定向控制流程
7.7 使用chain方法構造模型(Model)
7.8 顯示回響(Response)
7.8.1 顯示文本
7.8.2 顯示指定的視圖
7.8.3 顯示標記(Markup)
7.9 攔截操作
7.9.1 Before通知
7.9.2 After通知
7.9.3 使用攔截器實現驗證
7.10 處理檔案上傳
7.10.1 使用multipart請求
7.10.2 上傳和數據綁定
7.11 本章小結
第8章 GroovycServercPages
8.1 基礎知識
8.1.1 理解模型
8.1.2 頁面指令
8.1.3 GroovycScriptlets
8.1.4 在GSP中使用GString
8.2 Grails內置標籤
8.2.1 使用標籤來設定變數
8.2.2 邏輯標籤
8.2.3 疊代標籤
8.2.4 過濾器和疊代
8.3 Grails動態標籤
8.3.1 連結標籤
8.3.2 創建表單和欄位
8.3.3 驗證和錯誤處理
8.4 國際化支持
8.4.1 標籤
8.5 使用布局和模板
8.5.1 布局演示
8.5.2 按照慣例布局
8.5.3 使用Meta標籤進行布局
8.5.4 演示布局
8.5.5 理解模板
8.5.6 共享模板
8.5.7 重新討論Render方法
8.6 對數據進行分頁
8.7 創建自定義標籤
8.7.1 創建標籤庫
8.7.2 自定義標籤基礎內容
8.7.3 演示自定義標籤
8.7.4 測試自定義標籤
8.8 本章小結
第9章 Ajax
9.1 Ajax基礎知識
9.2 Ajax實戰
9.2.1 在遠程方法調用前後執行代碼
9.2.2 事件處理
9.2.3 完善頁面的更新
9.3 創建遠程調用連結
9.4 實現Ajax效果(Effects)
9.5 如何處理JavaScript事件
9.6 以異步方式提交表單
9.7 關於Ajax性能的討論
9.8 本章小結
第10章 服務(Services)和作業(Jobs)
10.1 服務基礎知識
10.1.1 事務
10.1.2 服務和依賴注入
10.2 服務實戰
10.2.1 示例A——擴展搜尋功能
10.2.2 示例B——顯示del.icio.us中的最新數據
10.2.3 測試服務
10.3 使用Quartz進行作業調度
10.3.1 簡單的作業
10.3.2 Cron作業
10.4 作業實戰
10.4.1 修改領域模型
10.4.2 實現控制器
10.4.3 創建視圖和模板
10.4.4 作業調度
10.4.5 測試作業
10.5 使用調度程式
10.5.1 暫停和恢復作業
10.5.2 觸發作業
10.5.3 增加和刪除作業
10.6 本章小結
第11章 與Java集成
11.1 伺服器端Java集成
11.2 通過集成Hibernate實現ORM
11.2.1 使用HibernatecXML映射
11.2.2 EJB3方式的映射
11.2.3 在POJO實體中使用約束
11.2.4 得到SessionFactory對象
11.3 使用Spring進行依賴注入
11.3.1 使用Grails中的Bean
11.3.2 重載Bean的定義
11.4 在Grails中使用Spring控制器
11.5 在Grails中使用Acegi
11.6 使用XFire創建SOAP服務
11.7 本章小結
附錄
1.1 Java的困惑
1.2 Webc2.0時代
1.3 Java的力量
1.4 什麼是Grails
1.4.1 與Java集成
1.4.2 簡單而強大
1.4.3 吸取的經驗教訓
1.5 使用Grails的原因
1.6 Grails入門
1.6.1 運行Grails命令
1.6.2 義不容辭的“HellocWorld!”
1.7 單元測試
1.8 本章小結
第2章 Groovy動態語言
2.1 Groovy和Java的異同
2.1.1 相同點
2.1.2 不同點
2.2 基礎知識
2.1.1 類聲明
2.2.2 語言級斷言(Assertion)
2.2.3 Groovy字元串
2.2.4 閉包(Closures)
2.2.5 列表(List)和映射(Map)
2.2.6 Expando動態對象
2.2.7 範圍(Range)
2.3 Groovy的高級特性
2.3.1 一切都是對象
2.3.2 元編程(Metaprogramming)
2.3.3 生成器(Builder)
2.4 本章小結
第3章 Grails工程基礎架構
3.1 Grails工程結構
3.2 Grails和MVC模式
3.2.1 MVC中的模型(M)
3.2.2 MVC中的視圖(V)
3.2.3 MVC中的控制器(C)
3.2.4 除MVC之外的其他部分
3.3 Grails支持多種環境
3.4 數據源配置
3.4.1 支持的資料庫
3.4.2 配置自定義方言(Dialect)
3.5 引導Grails應用程式
3.6 配置日誌(Logging)
3.6.1 啟用SQL日誌
3.6.2 日誌記錄(Logging)和環境
3.7 Grails命令行工具
3.7.1 在不同的連線埠上運行Grails應用程式
3.7.2 打包war存檔檔案(WARcArchive)
3.8 使用Grails控制台(Console)及命令解釋程式(Shell)
3.8.1 使用命令行Shell
3.8.2 Grails控制台(Console)
3.9 IDE集成
3.9.1 安裝Groovy-Eclipse外掛程式
3.9.2 導入Grails工程
3.9.3 在Eclipse中運行Grails應用程式
3.10 本章小結
第4章 Grails中的域(Domain)
4.1 簡化的ORM和Grails對象關係映射(GORM)
4.2 GORM基礎
4.3 設定屬性可選
4.4 GORM中的關係
4.5 執行CRUD操作
4.5.1 創建書籤
4.5.2 讀取書籤
4.5.3 更新書籤
4.5.4 刪除書籤
4.6 查詢領域模型(DomaincModel)
4.6.1 使用get方法和exists方法進行基本查詢
4.6.2 列舉(Listing),70排序(Sorting)以及合計(Counting)
4.6.3 用動態查找器(Finder)查詢
4.6.4 使用HQL進行查詢
4.6.5 按樣本(Example)查詢
4.6.6 使用條件(Criteria)查詢
4.7 映射繼承
4.8 驗證領域(Domain)模型
4.8.1 使用域約束(Domainonstraints)
4.8.2 驗證約束(Constraints)
4.8.3 自定義約束(Constraints)
4.8.4 回顧更新操作
4.9 本章小結
第5章 腳手架(Scaffolding)
5.1 動態腳手架
5.1.1 創建操作(Create)
5.1.2 讀取操作(Read)
5.1.3 更新操作(Update)
5.1.4 刪除操作(Delete)
5.1.5 重寫(Overriding)CRUD操作
5.1.6 使用約束自定義欄位.
5.2 靜態腳手架
5.2.1 生成控制器(Controller)
5.2.2 生成視圖(Views)
5.3 本章小結
第6章 測試
6.1 編寫高效的單元測試
6.1.1 使用assert關鍵字
6.1.2 使用測試數據
6.1.3 探索GroovyTestCase
6.1.4 測試實踐
6.2 使用Mocks和Stubs
6.2.1 Mock實戰
6.2.2 使用閉包修整(Closureurrying)定義測試數據
6.3 使用WebTest進行功能測試
6.3.1 安裝WebTest
6.3.2 生成Web測試
6.3.3 執行Web測試
6.3.4 與表單互動
6.4 本章小結
第7章 Grails控制器(Controller)
7.1 控制器介紹
7.2 設定默認操作
7.3 訪問Request屬性
7.3.1 使用日誌(Logging)
7.3.2 處理request參數
7.3.3 理解Flash作用域
7.4 創建模型(Model)
7.5 數據綁定和類型轉換
7.5.1 用領域模型(DomaincModel)進行數據綁定
7.5.2 使用bindData方法進行數據綁定
7.6 用重定向控制流程
7.7 使用chain方法構造模型(Model)
7.8 顯示回響(Response)
7.8.1 顯示文本
7.8.2 顯示指定的視圖
7.8.3 顯示標記(Markup)
7.9 攔截操作
7.9.1 Before通知
7.9.2 After通知
7.9.3 使用攔截器實現驗證
7.10 處理檔案上傳
7.10.1 使用multipart請求
7.10.2 上傳和數據綁定
7.11 本章小結
第8章 GroovycServercPages
8.1 基礎知識
8.1.1 理解模型
8.1.2 頁面指令
8.1.3 GroovycScriptlets
8.1.4 在GSP中使用GString
8.2 Grails內置標籤
8.2.1 使用標籤來設定變數
8.2.2 邏輯標籤
8.2.3 疊代標籤
8.2.4 過濾器和疊代
8.3 Grails動態標籤
8.3.1 連結標籤
8.3.2 創建表單和欄位
8.3.3 驗證和錯誤處理
8.4 國際化支持
8.4.1 標籤
8.5 使用布局和模板
8.5.1 布局演示
8.5.2 按照慣例布局
8.5.3 使用Meta標籤進行布局
8.5.4 演示布局
8.5.5 理解模板
8.5.6 共享模板
8.5.7 重新討論Render方法
8.6 對數據進行分頁
8.7 創建自定義標籤
8.7.1 創建標籤庫
8.7.2 自定義標籤基礎內容
8.7.3 演示自定義標籤
8.7.4 測試自定義標籤
8.8 本章小結
第9章 Ajax
9.1 Ajax基礎知識
9.2 Ajax實戰
9.2.1 在遠程方法調用前後執行代碼
9.2.2 事件處理
9.2.3 完善頁面的更新
9.3 創建遠程調用連結
9.4 實現Ajax效果(Effects)
9.5 如何處理JavaScript事件
9.6 以異步方式提交表單
9.7 關於Ajax性能的討論
9.8 本章小結
第10章 服務(Services)和作業(Jobs)
10.1 服務基礎知識
10.1.1 事務
10.1.2 服務和依賴注入
10.2 服務實戰
10.2.1 示例A——擴展搜尋功能
10.2.2 示例B——顯示del.icio.us中的最新數據
10.2.3 測試服務
10.3 使用Quartz進行作業調度
10.3.1 簡單的作業
10.3.2 Cron作業
10.4 作業實戰
10.4.1 修改領域模型
10.4.2 實現控制器
10.4.3 創建視圖和模板
10.4.4 作業調度
10.4.5 測試作業
10.5 使用調度程式
10.5.1 暫停和恢復作業
10.5.2 觸發作業
10.5.3 增加和刪除作業
10.6 本章小結
第11章 與Java集成
11.1 伺服器端Java集成
11.2 通過集成Hibernate實現ORM
11.2.1 使用HibernatecXML映射
11.2.2 EJB3方式的映射
11.2.3 在POJO實體中使用約束
11.2.4 得到SessionFactory對象
11.3 使用Spring進行依賴注入
11.3.1 使用Grails中的Bean
11.3.2 重載Bean的定義
11.4 在Grails中使用Spring控制器
11.5 在Grails中使用Acegi
11.6 使用XFire創建SOAP服務
11.7 本章小結
附錄