領域類(domain)的生命週期事件 這包括針對CRUD操作的四個事件回調: onLoad、beforeInsert、befortUpdate及beforeDelete, 當執行資料庫操作時就會觸發四個方法。 onLoad在此類從資料庫中載入時被啟用。 beforeInsert在save()方法執行前被啟用。 beforeUpdate在update()方法執行前被啟用。 beforeDelete在delete()方法執行前被啟用。 domain例: class User{ String name // ... def beforeInsert = { // your code goes here } def beforeUpdate = { // your code goes here } def beforeDelete = { // your code goes here } def onLoad = { // your code goes here } } 這裡對上述事件進行補充。 Grails支持GORM事件及Hibernate套件, GORM事件的定制包括事件的註冊,在刪除、插入及更新發生時會觸發這些事件。 Hibernate的事件套件為領域模型提供了支持, 可以使用以下這些方法來對Hibernate的事件系統進行啟用: afterInsert、afterUpdate、afterDelete、 beforeLoad、afterLoad、beforeSave及afterSave。 其它的領域層事件就是領域類的時間戳記了。 如果你提供了一對特別命名的字段(lastUpdated与dateCreated),GORM就會自動為這個類增加時間。 在Web應用的其它層上,Grails提供了Web執行事件以管理Web的執行 (從一種狀態轉化為另一種狀態)和 Ajax事件(如果Web應用中發生了某個事件就會去調用一個特定的JavaScript函數)。 Grails還支持對自動重新加載事件的攔截, 這可用來監控資源的改變,當發生變化時會重新加載資源。 這就是Grails在運行時能重新加載應用的原因。
