我正在学习 Oracle ADF 框架并想了解 DataControl 向 UIComponents 公开哪些服务。我知道有一个binding container
抽象实际上是在页面中呈现的视图对象和 UIComponents 之间进行绑定。datacontrol
抽象在这个框架中扮演什么角色?
换句话说,在绑定环境中运行的datacontrol
和之间的关系是什么?在普通的 Java EE 应用程序中bindings
,什么可以被称为等价物 ?DataControl
我正在学习 Oracle ADF 框架并想了解 DataControl 向 UIComponents 公开哪些服务。我知道有一个binding container
抽象实际上是在页面中呈现的视图对象和 UIComponents 之间进行绑定。datacontrol
抽象在这个框架中扮演什么角色?
换句话说,在绑定环境中运行的datacontrol
和之间的关系是什么?在普通的 Java EE 应用程序中bindings
,什么可以被称为等价物 ?DataControl
数据控制抽象在这个框架中扮演什么角色?
这DataControl
是一个额外的抽象层来访问业务服务(实际的模型层)。
在 ADF 中,业务服务支持不同的类型,例如
这些不同的数据访问类型由数据控制层封装。数据控制层提供了一个通用接口Attributes
,使用Collections
和Operations
用于绑定层。在绑定层中,查询和更新数据时是否访问 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、各种类型的后端的更完整的解决方案。