`
alartin
  • 浏览: 211319 次
社区版块
存档分类
最新评论

JCR中的观察机制

阅读更多
JCR提供观察机制, 目的是在Item变化时(包括节点和属性),客户可以得到通知,从而作出相应的反应. JCR专门有一个包: javax.jcr.observation. 它包含5个接口:
  1. Event: 事件,支持5种事件类型: 节点的增加和删除,属性的增加,删除和改变. 事件类有三个方法,分别是getPath()返回和这个事件相连的项目(可能是节点,也可能是属性)的绝对路径,getType()返回事件类型,getUserID()返回和这个事件相连的用户ID字符串(通过引起这个事件的会话的getUserID方法)
  2. EventIterator, 事件的Iterator
  3. EventListener, 事件监听器. 通过观察管理器来注册事件监听器, 事件监听器是异步的,只有事件发生并且事务已经提交了,事件监听器才能看见事件.当然事件监听器能否看见事件还取决于它注册的会话和是否有足够的相应的权限. 需要注意的是监听器的范围是每个Workspace,而不是整个仓库.他们仅仅接受他们注册的Workspace内发生的事件.当一个持久性的变化发生时,仓库调用每个监听器的onEvent方法, 注意每个监听器可以有过滤器来决定监听何种事件. 这个方法通过EventIterator对象接受到事件通知. EventIterator对象包含一系列事件(当然也要过滤),描述了对整个Workspace作出的持久性变化.
  4. ObservationManager观察管理器: 这个最重要. 通过Workspace.getObservationManager()方法从Workspace对象处获得观察管理器.通过ObservationManager添加,删除事件监听器.
分享到:
评论

相关推荐

    jcr_in_action.pdf

    观察机制使应用程序能够实时响应存储库中的更改,而锁定和事务处理则确保了数据的一致性和完整性。 ### 示例应用程序:数字资产管理 书中详细介绍了一个基于JCR的数字资产管理示例应用程序,用于存储和管理图片的...

    jackrabbit内容仓库的实例(两个工程)

    - `jackrabbitexample`:这个工程可能包含了官方的三个小示例,你需要检查源代码,理解每个示例的目的,然后按照代码中的指示运行它们,观察输出结果。 - `jackrabbittest`:这个可能是IBM示例,同样需要编译并...

    Content Repository API for Java Technology Specification

    - **观察**:添加了观察功能,可以监控存储库中的变化。 - **锁定**:引入了锁定机制,以支持并发控制和事务处理。 - **版本控制**:增强了版本控制的功能,以支持历史数据的追踪和回滚。 ##### 1.4 从 v0.9 到 v...

    publication-javamagazin-sling:作为Apache Java Magazin中的文章的一部分创建的Apache Sling示例应用程序

    此外,它演示了JCR观察如何允许使用Sling Job框架处理资源修改事件。该示例应用程序不是什么即用型CMS / Web应用程序。 纯粹是为了演示Sling功能而设计的。如何运行此应用程序从下载Sling 7独立应用程序使用JDK 7...

    计算机组成原理课程设计-TEC5

    本课程设计旨在让学生通过实践了解计算机硬件的工作机制。 ### 二、TEC-5实验系统的组成与功能 #### 1. 实验目的 - **构建模型计算机**:利用微程序控制器与执行部件联机,构成一个简单的模型计算机。 - **微程序...

Global site tag (gtag.js) - Google Analytics