了解 ADF 框架中的数据控制抽象



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

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

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

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

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

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

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

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

绑定层的作用是什么,它如何与数据控制层交互

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

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

@Shay Shmeltzer提到的录音绝对值得回顾,因为它们很好地洞察了数据控制和绑定层。

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

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

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

最新更新