2014-01-01 Created By BaoXinjian


Oracle ADF的架构是基于MVC设计模式的,其架构如图1所示。从图1我们可以看出,ADF把应用程序分成了四层

1. Business Service 层

(1). Business Service 层包括三个小层

分别是持久层(Persistent Business Objects);

数据访问层(Data Access);

接口层(ADF Application Module);

(2). 概念

这三层建立的顺序是这样的,先建立持久层的实体对象(Entity Object),然后建立数据访问层的视图对象(ViewObject),最后建立接口层。

其中建立持久层的实体对象主要是和数据库的表或者同义词对象建立关联,数据访问层的视图对象(ViewObject)是基于实体层的实体对象建立的,主要是进行数据库的访问,

而接口层是整个Business Service 层和Model层的接口,在数据访问层建立的视图对象需要注册到接口层中,这样在Model层中才可以访问。

2. Model 层

(1). Model层包括两层

ADF Bindings

ADF DataControl

(2). 概念

其中ADF Bindings是ADF提供的一种绑定技术,ADF DataConrol 是指我们已经在接口层中注册的视图对象(ViewObject)。

这一层在实际开发中基本不需要开发者做太多的工作。

3. Controller 层

ADF 在Controller层中扩展了APACHE基金会的STRUTS框架,它为Struts提供了一个页面流转图,以简化应用程序的开发。

开发者可以简单地拖拽Struts的组件到这个图表中,这个图表会自动地同步更新Struts-config.xml文件。

其中我们最常用的是DataPage组件,该组件的作用主要是建立一个页面,并且自动为其建立一个DataForwardAction。

如果我们有一些自定义的方法,也可以写一个Action,然后覆盖DataForwardAction。

4. View 层

在View层可以采用ORACLE 的UIX 技术,它里面定义了大量功能强大的组件。

Oracle Jdeveloper 在View 层提供了一个可视化的布局编辑器,开发者可以使用组件面板向应用程序添加可视化的组件,并可以运用属性编辑器(Property Inspector)来定义这些组件的属性。

可视化的编辑器是和源码同步的,所以开发者可以选择自己喜欢的开发方式。

5. 结构图

2. ADF的概念


1. ADF的定义

ADF是Oracle开发的一个基于Jdeveloper的界面化错做的MVC开发架构

(1). 依赖于大量XML进行数据映射和配置

(2). 实现客户端空间“拖延"数据绑定

从而大大简化基于MVC的WEB开发

2. ADF的关键概念

(1). BC4J - Business Components for JAVA

是以个可绑定多层数据、事物控制、可灵活访问的瘦客户端组件

(2). DataControl

是BC4J组件发布给客户端调用的接口,他包含三种元素

a. Value:前端显示的数据,包括Atrribute、List、Graph

b. Method Action:客户自定义方法

c. Action:内置方法CURD,commit, rollback

(3). TaskFlow

是有视图View、方法MothCall等组成的可重复调用的任务链

a. Bounded:有开始有结束,可以传递参数和被unbound任务链调用,但不能调用unbounded任务链

b. Unbounded:有开头没有街舞的任务链,adfc-config.xml为默认的unbounded任务链

(4). ADF Page

是一个富客户端开发框架,页面有两种表现方式

a. Fusion Page 融合页面: jspx, 是基于jsf页面的扩展,可单独运行

b. Fragment Page 片段页面:jsff,是基于region的方式用于行在jspx中

(5). 结构图

3. BC4J的概念


1. 基本概念

Application Module是一个View Object集合和BC4J对外接品, BC4J中可以设置多个Application Module

在ViewRowImpl类中实现View Object的基础CURD方法

数据库连接有BC4J完成(bc4j.xcfg)

2. 各个组件的作用

(1). Entitiy Object

针对表、视图进行压缩的业务逻辑,可以理解为一个数据接收器

(2). View Object

是一个含有对数据查询、过滤等操作的数据源

(3). Application Module

含有View Object、View Link和事物控制组件,一个Application可以有多个AM,它可通过DataControl和WebServcie两种方式访问

(4). View Link

应用于View Object之间的关联和交互

(5). View Row

对应表里面的单行错做,他的实现类oracle.jbo.server.ViewRowImpl,View Object中create、delete、update基础操作在奔雷实现

3. 结构图

4. ADF XML配置文件概念


1. adfm.xml

2. bc4j.xcfg

3. databindings.cpx

4. pagenamepagedef.xml

5.adfc-config.xml

6. task-flow-definition.xml

7. adf-setting.xml

8. janz-data.xml

9. logging.xml

10. trinidad-config.xml

Manage Bean及生命周期概念


6. ADF Task Flow概念


1. Task Flow作为ADF的控制层,所有的JSP Page都应在Task Flow中进行控制

ADF页面组件结构


页面组件结构简图

Thanks and Regards

ADF_ADF Framework基本概念(概念)的更多相关文章

  1. OAF_OAF Framework状态分析(概念)

    20150706 Created By BaoXinjian

  2. 转载文章----C#基础概念

    转载地址:http://www.cnblogs.com/zhouzhou-aspnet/articles/2591596.html 1.值类型和引用类型 1.1堆和栈 简单的说值类型存放在堆栈上面,引 ...

  3. .NET Remoting学习笔记(一)概念

    目录 .NET Remoting学习笔记(一)概念 .NET Remoting学习笔记(二)激活方式 .NET Remoting学习笔记(三)信道 背景 自接触编程以来,一直听过这个名词Remotin ...

  4. 【转载】.NET Remoting学习笔记(一)概念

    目录 .NET Remoting学习笔记(一)概念 .NET Remoting学习笔记(二)激活方式 .NET Remoting学习笔记(三)信道 背景 自接触编程以来,一直听过这个名词Remotin ...

  5. 4.事务提交过程,交易的基本概念,Oracle交易周期,保存点savepoint,数据库的隔离级别

     事务提交过程 事务 基本概念 概念:一个或者多个DML语言组成 特点:要么都成功.要么都失败 事务的隔离性:多个client同一时候操作数据库的时候.要隔离它们的操作, 否则出现:脏读  不可反 ...

  6. Microsoft SQL Server学习(一)--基本概念

    数据库的分类 关系型数据库 非关系型数据库 数据库的发展 数据都是以文件的形式存储在硬盘上FATFAT32NTFS LinuxEXT 数据库设计流程 文件系统缺陷 数据库的专业术语 数据库引擎服务 E ...

  7. Java 基础 面向对象: 接口(interface )概念 以及接口之练习3 -定义一个接口用来实现两个对象的比较并 判断instanceof是否为同类

    接口(interface )概念概念笔记 及测试代码: /** 面向对象: 接口(interface ) 是与类并行的一个概念: * 1.接口可以看成一个特殊的抽象类,它是常量与抽象方法的一个集合 * ...

  8. 【转】Robot Framework 快速入门

    目录 介绍 概述 安装 运行demo 介绍样例应用程序 测试用例 第一个测试用例 高级别测试用例 数据驱动测试用例 关键词keywords 内置关键词 库关键词 用户定义关键词 变量 定义变量 使用变 ...

  9. Entity Framework Code First约定

    Code First使你能够通过C# 或者 Visual Basic .NET来描述模型,模型的基本规则通过使用约定来进行检查,而约定就是一系列内置的规则. 在Code First中基于类的定义通过一 ...

随机推荐

  1. Java基础(二):基本数据类型和变量类型

    一.java基本数据类型: 变量就是申请内存来存储值.也就是说,当创建变量的时候,需要在内存中申请空间.内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据. Java 的两 ...

  2. Java的泛型中,通配符可以设置上限和下限

    上限:<? extends T> ?是T和T的子类 下限:<? super T> ?是T和T的父类 怎么看待这个上限和下限呢 首先应该想 其实对于Java来说 <? ex ...

  3. [CSS] Pseduo

    #self aside li{ list-style-type: none;padding:5px;border-bottom: 1px solid #ccc;} #self aside li:las ...

  4. 2015 -&gt; 2016

    2015年. 2015年前几个月,一直住在三亚,每天过着老年人般的生活. 每天吃饭睡觉看电视遛弯游泳.生活倒也满意. 4月份開始,从三亚一路开车回到上海,开开停停,最后享受了一次沿路的风景和满意. 5 ...

  5. VC操作MPP文件

    1.背景简介 因需要对Office系列进行程序操作,特需要使用COM编程. Microsoft Project生成进度计划,office家族软件,文件后缀为.mpp. 具体信息见维基百科http:// ...

  6. Struts2(五)Action二配置

    一.method参数 action package com.pb.web.action; public class HourseAction { public String add(){ System ...

  7. iOS——Quartz2D

    0. 复习. 1.基本图形绘制 * 线段(线宽.线段样式) * 矩形(空心.实心.颜色) * 三角形.四边形等形状 1> 说明 - (void)drawRect:(CGRect)rect 什么时 ...

  8. Jetty:配置上下文

    这篇文件讲述配置Jetty上下文的各种选项. 设置上下文路径 上下文路径是一个URL路径的前缀,用于将一个输入请求相应到相应的上下文.Java Servlet Server的URL通常的格式为:htt ...

  9. 使用Fiddler抓包调试https下的页面

    众所周知https技术诞生以来,一个很重要的作用就是加密通信内容.所以在项目团队将业务站点实施完https改造以后,原先使用fiddler进行抓包的美好生活到头了.其实fiddler本身是支持对于ht ...

  10. Class.forName和registerDriver的区别

    我们都知道JDBC的代码怎么写,比如以MySQL JDBC为例 //注册JDBC驱动 Class.forName("com.mysql.jdbc.Driver"); //然后就可以 ...