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