壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2053|回复: 16

[二次开发] [分享知识 原创连载]ADF入门及提高,详细讲解个人在学习以及使用ADF开发的技术

[复制链接]
发表于 2013/7/28 22:25:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 ygj26 于 2013/8/19 14:11 编辑

个人简介:毕业三年,主要从事过ADF,BIEE,ETL等开发
个人博客(ADF专区):http://blog.csdn.net/ygj26/article/category/738478
连载主题:ADF入门及提高
计划发布在那个板块:
更新周期: 每两周
本连载的亮点是:详细讲解个人在学习以及使用ADF开发的技术。
其他要说的话:感谢erp100平台。其实ADF在Oracle新的中间件中已经广为应用,包括即将推出的Oracle Fusion Application也使用到了ADF技术。

目录
一、ADF概述
二、开始ADF Business Components

本帖被以下淘专辑推荐:

 楼主| 发表于 2013/8/1 10:35:41 | 显示全部楼层
本帖最后由 ygj26 于 2013/8/8 12:55 编辑

一、ADF概述
1.简介
Oracle Application Development Framework(Oracle ADF)是一个构建在Java EE标准和开源技术上的端到端的应用程序框架。你可以通过Oracle ADF在Web、wireless,desktop或者Webservice接口实现查询,创建,修改,验证等企业解决方案。由于ADF是声明式开发,所以简化和加速了开发流程。用户可以专注于逻辑应用的创建而不是编码的细节。

2.Oracle ADF架构
ADF实际上也是一个MVC框架,以下是Oracle架构的模型图
  • View层是用户能够看到并且能与之交互的页面
  • Controller层处理用户输入并且决定页面导航
  • Model层将数据关联到当前页面
  • Business Service处理数据访问和业务逻辑封装

adfsimple.gif

2.1 ADF Business Component
在构建面向服务的的Java EE应用时,你将实现一个或多个业务服务的核心业务逻辑。这些后端服务,为客户提供一种方式来查询,插入更新和删除业务数据。ADF业务组件是预先建立的应用对象,以加速交付和维护高性能,丰富的功能,以数据库为中心的服务工作。他们为您提供了一个现成的使用实现了Java EE设计模式和最佳实践。
Oracle ADF提供以下主要组件,来构建以数据库为中心的业务服务:
  • Entity Object(实体对象)
       Entity Object 代表一个数据库表中的行,并简化其数据的DML操作。它可以封装业务逻辑,以确保您的业务规则顺利执行。
  • View Object(视图对象)
       View Object 代表一个SQL查询的结果集。你可以使用SQL进行关联,过滤,聚合等操作,最终将结果展现给用户。当最终用户在界面修改数据时,View Object能够关联Entity Object始终如一的保留用户修改状态,并且实现验证,最终将结果同步到数据库。
  • Application Module(应用程序模块)
       Application Module是UI客户端与应用数据工作的事务性组件,定义了可更新的数据模型和顶层方法。
2.2 ADF Model Layer
使用元数据接口抽象业务服务的实现技术来描述服务的操作和数据集,在创建应用程序模块时自动创建,包含应用程序模块的所有功能。使用Data Control创建数据绑定的用户界面。除了支持应用程序模块,还支持一下技术提供服务:
  • Enterprise JavaBeans(EJB)session beans和JPA entities
  • JavaBeans
  • Web services
  • XML
  • CVS files
2.3 ADF Controller
ADF控制器是处理Web应用页面流的关键之处,ADF控制器在JSF控制器的基础上增强了导航和状态管理。Jdeveloper允许用户使用声明式的方式创建任务流,在这里你可以控制页面流之间的活动或者调用其他任务流。
这些任务流可以重复使用,可以嵌套使用。用户可以查看不同页面的功能而无需跳转到其他URL所指向的页面(类似Ajax功能,无需编码,只需声明式定义页面流即可)。 intro_checkout.png
2.4 ADF Faces Rich Client
ADF Faces rich client(ADF Faces的简称),一个建立在标准JSF组件上的组件集合,内置了AJax功能。结合Jdeveloper使用,可以通过拖动的方式来构建用户界面。ADF Faces提供了超过100种组件,包括分层数据表,树形菜单,页面对话框,排序表。还有大量的数据可视化组件,如动态图标,数据透视表,方便用户定制各种报表。每个组件还支持自定义皮肤,以满足不同用户的需求。
table_basic_treetable.gif
                            树形表
dvt_intro_dashboard1.gif
                            图表
ADF Faces对国际化的支持也非常容易。
同时,ADF Faces也提供了丰富的JavaScript API供用户使用,尽管大多数情况下,我们并不需要自行编写Javascript代码。如果觉得组件不够使用,我们还可以自定义组件。




点评

很详细啊,学习学习。  发表于 2013/8/19 15:29
很有价值;宝贵的总结;很有价值;宝贵的总结;很有价值;宝贵的总结;很有价值;宝贵的总结;  发表于 2013/8/14 06:55
准确的来说,这个帖子放到Oracle Fusion板块就好了,目前貌似还没有这个板块。至于开发EBS,还不可以。可以用于开发Oracle Fusion App,和Oracle Fusion Middleware  发表于 2013/8/1 13:12
我也在去年开始接触ADF,但是冒昧的问一句,这个ADF能用于Oracle EBS的开发?  发表于 2013/8/1 11:08
发表于 2013/8/7 17:21:48 | 显示全部楼层
不是说OAF是for Oracle ebs;而ADF是for任何java环境,只是中间件。
 楼主| 发表于 2013/8/7 20:34:01 | 显示全部楼层
笨蛋老公余 发表于 2013/8/7 17:21
不是说OAF是for Oracle ebs;而ADF是for任何java环境,只是中间件。

没错,现在用来开发中间件的最多而以。ADF也是一个Java EE框架,可以运行在任何符合Java EE规范的Web容器中,开发Java应用是没有问题的,只是现在没有流行起来,要流行起来估计也比较难,企业应用的开发还可以。
发表于 2013/8/8 10:54:15 | 显示全部楼层
楼主,最近我也在用ADF技术,希望能多交流。
个人觉得,ADF是一个很好的东西,极大的简化了web开发,可以让开发人员的关注点从实现层面转移到业务层面来。
而且,由于界面的友好,对终端用户的影响是不可言喻的。对于企业应用来说,非常的合适。
基于JAVA的技术,我了解了一些,虽然没有实际项目支持,但是基本原理大概了解,最痛快的一点莫过于要处理html和js,这对我来说是不可以接受的,因为这些都不是重点,但是却又要花大量的时间调试运行。所以曾经有一段时间我非常关注过flex和javafx2,直到了解了ADF。
非常希望楼主能够深入下去给大家答疑解惑。
 楼主| 发表于 2013/8/8 12:06:11 | 显示全部楼层
stevenyanzhi 发表于 2013/8/8 10:54
楼主,最近我也在用ADF技术,希望能多交流。
个人觉得,ADF是一个很好的东西,极大的简化了web开发,可以 ...

{:soso_e181:}欢迎交流
发表于 2013/8/14 10:41:32 | 显示全部楼层
没下文了?求更新啊…………

点评

每周一篇  发表于 2013/8/14 10:43
发表于 2013/8/18 14:23:50 | 显示全部楼层
每周一篇{:soso_e100:}
 楼主| 发表于 2013/8/19 14:08:21 | 显示全部楼层
本帖最后由 ygj26 于 2013/8/28 09:18 编辑

二、开始ADF Business Components(ADF BC)
1. ADF业务组件介绍
ADF业务组件和JDeveloper简化JavaEE平台的业务应用程序开发,交付和定制。使用ADF业务组件,开发人员不需要编写应用程序基础框架的一些典型代码:
  • 链接数据库
  • 检索数据
  • 锁定数据库记录
  • 管理事物
ADF业务组件通过Jdeveloper的配套设置,轻松的解决了以上任务。更重要的是,开发人员可以大量节省时间来设计和业务最佳的业务组件。特别是Jdeveloper支持使用ADF业务组件声明式开发:
  • 创建和测试业务逻辑自动连接数据库
  • 通过基于多SQL的视图数据重用业务逻辑,支持不同应用的任务
  • 可以通过浏览器,桌面应用,移动设备和Web service等方式访问和更新视图
  • 定制应用的功能层而不需要修改已经交付使用的应用

ADF业务组件的目的是使业务服务开发更富有成效。

1.1 ADF业务组件特性
ADF业务组件提供了一个基础的java类库允许你在下列范畴提供相关功能:
简单的数据访问
  • 设计一个为客户端显示的数据模型,包括必要的数据
  • 包括主从复合结构在内的任何复杂性的层次结构作为数据模型
  • 实现了最终用户事例查询而无需编码
  • 自动协调数据模型变化当业务域对象层改变时
  • 自动验证并保存数据任何改变到数据库
执行业务域验证和业务逻辑
  • 声明式执行必须字段,主键唯一性,数据精度扫描以及外键引用
  • 轻松捕获和执行简单和复杂的业务规则,支持声明式或者编程方式的多层次验证
  • 导航业务域对象之间的关系,并强制约束复合组件
支持在多页工作单元的复杂UI
  • 自动反应业务服务应用程序逻辑的改变到用户界面
  • 检索相关表的引用信息,当用户更改外键值时自动维护信息
  • 自动管理简单多步骤的基于WEB的业务交易状态
  • 处理图像,视频,声音和文件,无需使用代码
  • 可以同步跨越多个视图的待处理数据
  • 在任何应用程序中,一致的应用提示(Prompts),工具提示(Tooltips),格式化消息或错误消息
  • 任何业务组件定义的元数据支持用户界面元数据驱动或应用程序功能
  • 在运行时动态添加属性,简化每行状态管理
实现高性能的面向服务的体系结构
  • 支持高功能业务集成的Web服务接口,而无需编写代码
  • 强制基于接口的最佳编程风格
  • 自动集成JAAS和审计维护简化应用程序安全控制
  • “一次编写,到处运行”
简化应用程序定制
  • 在不修改源代码的情况下扩展组件功能
  • 全局扩展的组件不需要修改应用程序

1.2 ADF业务组件核心对象
ADF包含Entity Object, View Object, Application Module几个核心对象。参见 一、ADF概述 > 2.Oracle ADF架构 > 2.1 ADF Business Component

1.3 设计工具概述Jdeveloper中包含了ADF业务组件全面的设计工具。同时,这些工具可以使你创建,编辑,测试和重构业务组件。
1.3.1 选择Connection, SQL Flavor 和 Type Map
...



点评

不错的  发表于 2013/8/19 20:45
发表于 2013/8/19 16:10:13 | 显示全部楼层
进修中
谢谢分享!!!
发表于 2013/9/12 11:33:00 | 显示全部楼层
我们公司现在的OA就是当初用ADF开发,其实是很好的东西。有些组件很好用。但是开发过程中,需要顺着ADF架构的思路去实现某些需求,不然会很难受。不知道现在的ADF是不是还是那6个生命周期。楼主是否可以考虑开篇讲一讲
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 01:46 , Processed in 0.018015 second(s), 17 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表