【问题标题】:Understanding DataControl abstraction in ADF framework了解 ADF 框架中的 DataControl 抽象
【发布时间】:2012-12-20 08:27:21
【问题描述】:

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

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

【问题讨论】:

    标签: jsf oracle-adf


    【解决方案1】:

    绑定层将 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、各种类型的后端的更完整的解决方案。

    【讨论】:

      【解决方案2】:

      数据控制抽象在这个框架中扮演什么角色?

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

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

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

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

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

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

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

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

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

      【讨论】:

      • datacontrol和绑定层是什么关系?换句话说,您能否扩展您的答案以包括绑定层的角色以及它如何与数据控制层交互?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-30
      • 1970-01-01
      • 1970-01-01
      • 2016-03-22
      • 2010-10-25
      • 1970-01-01
      相关资源
      最近更新 更多