了解ADF框架中的DataControl抽象

时间:2012-12-20 08:27:22

标签: jsf oracle-adf

我正在学习Oracle ADF框架,并希望了解DataControl向UIComponents公开的服务。我知道有一个binding container抽象实际上在视图对象和页面中呈现的UIComponents之间进行绑定。 datacontrol抽象在这个框架中扮演什么角色?

换句话说,在绑定环境中运行的datacontrolbindings之间的关系是什么,在普通的Java EE应用程序中可以称为DataControl的等价物? / p>

2 个答案:

答案 0 :(得分:3)

  

datacontrol抽象在这个框架中扮演什么角色?

DataControl是一个额外的抽象层,用于访问业务服务(实际模型层)。

在ADF中,业务服务支持不同类型,例如

  • 基于应用程序模块(访问关系数据库)
  • 网络服务
  • 通过网址访问数据的网址服务
  • 通过Java EE EJB访问业务数据的EJB数据服务

这些不同的数据访问类型由数据控制层封装。数据控制层使用AttributesCollectionsOperations来提供在绑定层中使用的公共接口。在绑定层中,在查询和更新数据时是否访问RDBMS,Web服务或其他内容无关紧要。

当我开始使用ADF时,我发现困难的一件事是,当使用RDBMS后端实现一个简单的应用程序时,我看不到这个附加层的任何实际好处 - 此外,数据控件立即可用于在应用程序模块中定义数据模型后,JDeveloper面板甚至没有配置文件。但是,只有在使用基于Application Module的业务服务时才会这样。在这种情况下,将从Application Modules数据模型中检索数据控件的所有元数据。使用其他业务服务类型(如Web服务)时,真正的好处就出现了。然后,还会创建其他元数据.xml文件来配置这些数据控件。

  

绑定层的作用是什么以及它如何与datacontrol层交互

绑定层增强了数据控件,以便可以在UI中使用数据。典型的绑定是迭代器(=>绑定层),它跟踪集合中的当前记录(=>数据控件)。如果没有iterator,就不会有“当前记录”的概念,并且无法在记录之间进行导航。

另一个方面是JDeveloper的设计时功能:数据控件提供必要的元数据,以便在将数据控件拖放到UI页面时自动创建必要的绑定。

@Shay Shmeltzer提到的录音绝对值得回顾,因为它们可以非常好地了解数据控件和绑定层。

答案 1 :(得分:3)

绑定层将UI层连接到数据控制层。 请注意,UI层可以是JSF页面,Excel电子表格,Swing UI和ADF Mobile页面。 datacontrol层以抽象的方式提供对业务服务的访问,因此UI开发人员无需知道业务服务实现的具体技术。

要了解有关绑定/数据控制层的更多信息,请在此处观看两部分研讨会: http://www.oracle.com/technetwork/developer-tools/adf/learnmore/adfinsider-093342.html#a2

在Java EE领域,最接近的是CDI - 但ADF绑定提供了一个更完整的解决方案,针对各种类型的UI,各种类型的后端。