Hibernate的事件机制

来源:互联网 发布:剑三藏剑成女捏脸数据 编辑:程序博客网 时间:2024/06/05 17:55

一、概述

    Hibernate执行持久化过程中,应用程序无法参与其中。但可以通过事件框架,Hibernate允许应用程序响应特定的内部事件,从而实现某些功能或者对Hibernate的某些功能进行扩展。

二、Hibernate事件框架

1. 拦截器机制

    通过Interceptor接口,可以从Session中回调应用程序的特定方法,这种回调机制可让应用程序在持久化对象被保存、更新、删除和加载之前,检查并修改其属性。使用拦截器步骤如下:

    定义实现Interceptor接口的拦截器类;

    通过Session启用拦截器,或者通过Configuration启用全局拦截器。

2. 事件系统

    Hibernate3的事件系统是功能更强大的事件框架,事件系统可以代替拦截器,也可以作为拦截器的补充来使用。基本上,Session接口的每个方法都有对应的事件,比如LoadEvent、FlushEvent等。当Session调用某个方法时,Hibernate Session会生成对应的事件,并激活对应的事件监听器。

    监听器是单例模式对象,即所的同类型的事件处理共享同一个监听器实例,因此监听器不应该保存任何状态,即不应该使用成员变量。使用步骤如下:

    实现自己的事件监听器类;

    注册自定义事件监听器,代替系统默认的事件监听器。



0 0
原创粉丝点击