GITREFEasyUDA平台应用开发指南.docx
- 文档编号:27026493
- 上传时间:2023-06-25
- 格式:DOCX
- 页数:29
- 大小:491.73KB
GITREFEasyUDA平台应用开发指南.docx
《GITREFEasyUDA平台应用开发指南.docx》由会员分享,可在线阅读,更多相关《GITREFEasyUDA平台应用开发指南.docx(29页珍藏版)》请在冰豆网上搜索。
GITREFEasyUDA平台应用开发指南
EasyUDA平台
应用开发指南
高伟达软件技术有限公司
2007年3月
文档信息
标题
EasyUDA平台应用开发指南
版本号
2.1
版本日期
2007-3-3
打印日期
/
文件名
GIT_REF_EasyUDA平台应用开发指南
存放目录
所有者
项目组
作者
邹明
修订记录
日期
描述
作者
版本号
2007-3-3
文档建立
邹明
1.0
2007-3-5
修改BackingBean段落的内容
邹明
1.01
2007-3-13
增加IDataStore接口方法描述
邹明
1.10
增加异常处理描述
增加日志处理描述
增加方法命名约束
2007-3-14
增加流程开发的内容
邹明
1.20
2007-3-15
增加开发工具的指导内容
邹明
1.21
2007-3-16
增加程序模板的内容
邹明
1.22
2007-3-22
修正异常处理一节中BS捕获异常的约定
邹明
1.23
2007-3-22
添加WPS流程开发章节
邹明
1.30
2007-3-26
添加PLSQLDeveloper章节
邹明
1.40
2007-4-23
添加公共服务章节
邹明
1.50
2007-4-25
修改流程开发章节
邹明
1.60
2007-5-21
将流程开发章节抽取为独立文档
邹明
1.61
2007-7-3
添加uda2.0技术特性
邹明
2.0
2007-7-26
添加项目配置文件内容
邹明
2.1
文档审核/审批(此文档需如下审核)
姓名
公司/部门
职务/职称
文档分发(此文档将分发至如下各人)
姓名
公司/部门
职务/职称
本文档中所包含的信息属于机密信息,如无高伟达软件技术有限公司的书面许可,任何人都无权复制或利用。
®CopyRight2007GreatInfoTechChina
目录
1目的3
2范围3
3参考资料3
4文档变量3
5架构介绍3
5.12.0特性4
6开发工具5
6.1Eclipse5
6.2Erwin6
6.3Oracle6
6.4PL/SQLDeveloper6
6.4.1操作数据8
6.5TortoiseCVS9
6.6WebsphereIntergrationDeveloper9
7开发环境9
7.1工作目录9
7.2项目配置文件11
7.2.1主配置11
7.2.2安全配置12
7.2.3流程配置13
7.2.4文档配置13
8功能开发13
8.1命名14
8.1.1功能命名14
8.1.2方法命名14
8.2界面开发15
8.2.1JSF页面15
8.2.2界面框架15
8.2.3信息提示17
8.3权限配置17
8.4编写Java代码18
8.4.1BackingBean18
8.4.2ValueObject21
8.4.3UseCaseController21
8.4.4BusinessService23
8.5数据持久化23
8.5.1ID标识24
8.5.2IDataStore接口24
8.6异常处理26
8.6.1业务异常代码26
8.7日志处理26
8.8功能调试27
8.9公共服务27
8.9.1系统常量27
8.9.2服务类28
929
1目的
本文档主要介绍高伟达EasyUDA信贷软件平台的架构和功能,并且指导如何在EasyUDA平台基础之上进行功能的开发。
2范围
将使用EasyUDA平台进行银行信贷业务开发的开发人员。
3参考资料
GIT_STD_EasyUDA平台开发规范.doc
GIT_STD_数据库设计规范.doc
在WID中开发流程应用.pdf
4文档变量
WORKING_FOLDER:
开发人员在自己电脑上设定的开发目录
CVS_HOST:
:
pserver:
用户名@10.20.6.15:
/CVS_ROOT
FTP_HOST:
ftp:
//10.20.6.15
ORACLE_HOST:
10.20.6.15:
1521
ORACLE_USERNAME:
cmis
ORACLE_PASSNAME:
cmis
5架构介绍
EasyUDA平台在系统运行时是基于J2EE的三层架构思想实现的四层体系结构。
分为:
展现层、控制层、业务层、持久层。
展现层:
将系统应用通过用户界面展示给用户。
采用JSF技术,主要的编程元素有jsp,BackingBean,faces-config。
控制层:
转发展现层对业务层的逻辑请求,由用例控制器(UCC)实现。
UCC不仅仅转发请求,另外两个重要特性:
一是控制业务执行的事务边界;二是把自己向外暴露成公共服务,或者调用其它公共服务。
业务层:
所有的业务逻辑代码都集中在这一层。
特点是除了定义的业务逻辑方法之外无其它额外编码。
持久层:
通过对象关系映射来降低业务层和数据库之间的耦合程度。
使用统一的DataStoremanager工具统一管理对数据库的访问。
下面演示了一个用户请求被处理的过程。
用户在页面上点击某个按钮或链接后,会被JSF框架拦截并转换为一个JSF事件请求。
一个JSF事件请求对应着一个BackingBean方法,而事件被触发时所牵涉到的界面数据项会被封装在一个ValueObject对象之中一起被传递到控制层。
控制器UCC负责建立JSF事件与业务逻辑方法之间的映射关系,并起到对外部屏蔽业务逻辑的作用。
2.0特性
UDA2.0重新定义了事务处理的边界。
1.0中将ucc作为事务控制点,但是实际上是使用executor来确定事务边界,弊端是很难自由掌握事务的粒度。
当需要连续调用多个bs方法或者执行多个不同bs的组合调用时会使编码变得非常困难。
并且在处理流程时无法做到流程事务和业务事务的同步。
2.0为了解决上述问题,将ucc升级为真正的事务控制器,事务边界限定为每一个ucc方法调用。
这样可以很容易编排多个bs方法的组合调用以及业务逻辑和流程逻辑的同步执行或回滚。
6开发工具
开发前需要先安装好以下的相关工具软件。
Eclipse
目前版本3.2.2。
用于JAVA和JSP代码开发
程序文件:
$FTP_HOST/software/1-开发工具/IDE/eclipse-SDK-3.2.2-win32.zip
eclipse无须安装,解压到指定目录即可。
在项目文件已经从版本控制Checkout到本地之后,需要把项目文件导入为eclipse项目。
启动Eclipse,选择新建”javaproject”。
ProjectName处填写项目名称
Directory填写$WORKING_FOLDER/git_project
点击”finish”,当前工作目录就加入到eclipse项目中了。
Erwin
数据库设计工具
Oracle
数据库软件
程序文件:
$FTP_HOST/software/1-开发工具/数据库/oracle9i/
安装选项中选择客户端安装。
安装完毕后在ORACLE安装目录下的oracle\ora92\network\admin\tnsnames.ora文件中加入以下内容
SHRCBCMIS=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=$ORACLE_HOST)(PORT=1521))
)
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=orcl)
)
)
PL/SQLDeveloper
Oracle前端工具,用于在客户端查看和更新数据库数据。
位置:
$FTP_HOST/software/1-开发工具/数据库/PL.SQL.Developer.v7.0.3.1123-BEAN
安装完毕后运行程序,在DataBase选项里选择“SHRCBCMIS”。
用户密码为cmis。
点击“ok”。
左上角的下拉框选择Myobjects。
点击图中右数第二个漏斗图标,将Myobjects设置为Default。
Ok。
操作数据
在左侧列表里展开“Tables”项,会列出当前所有的业务表
查看数据。
选中要查看的表,点击右键,选择“QueryData”。
右侧就会出现本查询所执行的sql语句和列表出表数据。
修改数据。
修改表数据需要执行和查看数据一样的“QueryData”操作。
然后在右侧上部的sql语句处末尾添加“forupdate”,点击“F8”刷新数据。
点击图中的“锁”图标,当前表被锁定,随后就可以编辑已有数据了。
如果需要添加数据,点击图中“+”;删除数据则先选中要删除的数据,点击图中“-”。
当数据发生变化后图中“对勾”会显示高亮,编辑数据完毕后点击“对勾”确认修改。
完毕后切记点击“锁”标志以解除对表的锁定,否则他人将无法操作该表。
以上步骤完成后,在工具栏点击绿色按钮执行Commit操作,点击红色按钮执行Rollback操作。
TortoiseCVS
源代码版本控制工具CVS的客户端。
程序文件:
$FTP_HOST/software/2-质量管理/版本控制/CVS/TortoiseCVS-1.8.30.exe
安装完毕后在本机设置一个工作目录,如:
work_folder。
打开资源管理器,在work_folder内点击右键,选择CVSCheckut…
在CVS_ROOT栏中输入:
$CVS_HOST。
其中“用户名”为每个人姓名全拼,关于密码请登录VSS查阅$/CMIS/06-项目规范/A-管理规范/SHRCB_CMIS_STD_项目管理规范_v1.11.doc中的“权限管理”章节。
接着在“Module”栏中输入:
“git_project”,回车,项目开发目录就会被Checkout到本地。
然后就可以导入Eclipse开始工作了。
WebsphereIntergrationDeveloper
工作流开发工具。
做工作流开发的人员需要安装。
安装时需要勾选“安装集成测试环境“选项。
7开发环境
工作目录
从CVS获取最新的项目文件。
如下图:
当前工作目录路径应该为:
$WORKING_FOLDER/git_project
各子目录的用途为:
conf
存放项目配置文件
dist
包含Ant脚本,可以将项目打包成war
doc
javadoc文档
lib
项目所需要的所有外部类库
resin
内嵌的轻量应用服务器,用于非流程相关的功能调试。
src/java
系统所有的java源代码
src/webapp
Web内容存放地点
-shrcbcmis:
所有jsp页面,按模块划分成不同的目录
-WEB-INF:
包含自定义配置文件、jsf配置文件、tiles配置文件、流程配置文件、错误代码配置文件、web.xml
项目配置文件
主配置
conf/uda-conf-framework.xml
框架主配置由模块(module)构成。
●启动模块。
定义框架初始化装载的代理类
●动态模块。
Spring动态类装载元数据
●消息模块。
异常消息文件链接
●持久化模块。
事务及数据持久化功能配置数据
主配置允许被局部修改来支持在不同外部环境之间的切换。
1、客户化Spring受管Bean
实施过程中,当有需要将特定的客户化类加入Spring的bean容器时,可以通过修改/startup/spring配置项所链接的bean工厂配置来达到目的。
Spring将在启动时加载这些bean配置。
2、添加错误消息定义
添加错误消息时需要按照业务功能的划分确定文件命名后缀。
在/message/messages配置项中将这些配置文件逐一罗列,并通过回车符进行分隔。
3、切换数据源
当要链接的目标数据库地址发生变化时,要修改
--databaseproperties-->的配置块,重新指定目标数据库的url和认证数据。
4、切换流程应用源
远程调试流程应用时要求指定远程iiop服务的url。
由修改
--jndifactoryproperties-->配置来指定。
安全配置
uda-conf-security.xml
●安全策略
功能本地调试时使用内部安全性策略。
应用部署到应用服务器后将使用外部安全性策略。
●调试状态
当debug属性为“1”时,安全性策略关闭。
在进行本地功能调试时无需提供用户名和密码。
●用户对象
框架采用统一的用户对象封装不同的用户数据。
●页面
定义用户登录过程中经历的若干安全步骤所关联的页面链接
●认证
参与各安全步骤的校验类
●菜单
进行本地功能调试,并且处于调试状态时。
框架装载完毕后将读取dummymenu的菜单项配置。
否则就读取mainmenu菜单项配置。
dummy_menu定义可以自由添加,每一个item元素的值是目标功能url的全限定名称。
main_menu定义由设计人员确定,其功能url为数据库中的资源配置编号。
流程配置
文档配置
8功能开发
开发一个业务功能大概可以分为以下6个步骤。
命名
功能命名
上海农商信贷项目功能的包名为:
com.shrcb.cmis.模块名.功能名
各模块的包名请参考:
$/CMIS/05-设计文档/C-详细设计/SHRCB_CMIS_SPC_功能模块划分说明书_v1.0.doc
功能名由具体设计人员决定。
VO类需要在功能包单独建立vo目录存放。
下图展示了部门管理功能的包结构图。
JSP目录命名为:
$WORKING_FOLDER/src/webapp/shrcbcmis/模块名/功能名
方法命名
一律采用“动宾”短语命名操作的名称,同时适用于jsp代码和java代码
例:
查找客户操作对应方法名为findCustomer
系统中对于动词命名的选用使用以下规则:
find–对数据进行的查询操作
create–执行添加数据记录的操作
update–执行更新数据的操作
delete–执行删除数据的操作
is–判断某个事物,并得出“是和否”结论的操作
cancel–取消某个操作
submit–提交一个界面请求
print–打印
界面开发
本节涵盖步骤1,2。
JSF页面
所有jsp页面文件头部都统一为以下内容:
<%@pagecontentType="text/html;charset=GBK"%>
<%@tagliburi="prefix="h"%>
<%@tagliburi="prefix="f"%>
<%@tagliburi="prefix="c"%>
<%@tagliburi="http:
//myfaces.apache.org/tomahawk"prefix="t"%>
界面框架
Tiles配置文件在$WORKING_FOLDER/src/webapp/shrcbcmis/WEB-INF/tiles目录下。
并且根据不同的功能模块,按照definition-模块名.xml的形式分开成独立文件。
系统中所有的界面都由头部,躯干,尾部组成。
其中头和尾是固定不变的,因此,开发页面时只需要考虑躯干部分即可。
而对于整个页面来说躯干部分的代码是被包裹在一个
系统已经预制了几种Tiles页面模板。
main_layout.jsp
布局形式为:
Tiles配置文件样例为
其中黑体部分为对应的jsf页面名,下同。
tree_layout.jsp
布局形式为:
Tiles配置文件样例为
信息提示
待定
权限配置
EasyUDA安全管理组件为了方便开发时的功能调试,提供了dummy权限的机制。
当系统处于调试状态时,开发人员不需要经过安全认证即可登录系统,并可以自由管理菜单资源,即dummymenu的功能。
开启调试功能的方法:
打开$WORKING_FOLDER/conf/uda-conf-security.xml。
将其中debug属性置为1(默认即为1)。
并且将正在调试阶段的功能的链接配置在
这是就可以使用自定义的菜单了。
编写Java代码
BackingBean
JSF对于界面数据的封装,通常是把界面数据作为BackingBean的一个属性。
而当要开发一个有大量界面数据项的功能时(如:
合同信息录入),BackingBean就会变得杂乱无章,可读性太差。
所以在EasyUDA架构中,VO对象的概念被进一步提升,作为BackingBean的整体数据封装对象出现。
BackingBean的所有数据项都被封装在一个VO对象中,一个BackingBean对应一个VO对象。
jsp页面的数据绑定则按照如下方式编写:
inputTextid="显示名称"value="#{resourceBB.vo.displayName}"size="40"/> 另外,为适应多种场景的需要,VO可以有多个,VO之间可以嵌套。 也就是说,一个BackingBean对应一个VO对象,VO对象之下还可以有子VO对象、子子VO对象等。 BackingBean属于JSF中的受管理Bean,其生命周期由JSF框架进行管理。 因此BackingBean的开发,既需要编写代码,也还得修改配置文件。 BB类 1.0特性 2.0特性 UDA2.0重新定义了事务边界,能够提供更好的事务粒度支持。 相对于1.0,在BB中获取ucc实例的方法有所改变 privateResourceUCCucc=(ResourceUCC)SpringUtil.findBean("ResourceUCC"); ●通过cn.easyuda.framework.spring.SpringUtil从Spring获取ucc实例 ●ucc的Spring托管bean名称严格对应ucc的类名 Faces配置文件 $WORKING_FOLDER/src/webapp/shrcbcmis/WEB-INF/faces目录存放JSF配置文件,同tiles配置文件一样,faces配置文件也采取按照模块分开的原则。 组件配置文件 命名为components-模块名.xml 将刚才编写的BackingBean配置为一个 例: --资源管理by邹明--> 导航配置文件 命名为navigation-模块名.xml 决定一个事件在被触发和处理完毕之后将会定向到的下一个页面。 例: --资源管理by邹明--> --列表--> --添加--> ValueObject UseCaseController 1.0特性 2.0特性 publicSerializableadd()throwsServiceException{ //bs.setTarget("add"); bs.setVo(vo); returnbs.add(); //returnexecutor.exer(bs); } ●取消对bs设置target属性 ●取消使用executor执行bs逻辑 ●直接调用bs方法,并将vo返回 ●支持有参的bs方法,但是参数的提供和组装只能在ucc内部完成,不能蔓延到bb层 BusinessService 数据持久化 EasyUDA平台的DAO模式是一个一致的解决方案,把对单个数据表的CRUD操作抽象为接口,所有数据表都根据此接口来实现DAO操作。 而在开发应用层面,cn.easyuda.framework.persistence.IDataStore接口提供了针对BO的所有持久化操作方法。 ID标识 持久层采用系统标识和业务编号两种规则同时管理数据库记录。 系统标识为一个32位的字符串。 在一条数据记录被插入数据库保存之前都需要通过mons.uid.UUIDGenerator生成一个唯一的系统标识来做为该条数据记录的主键标识。 业务编号为具有特定业务含义的编号,并具有其自身的编排规则。 业务编号由具体业务指定的生成规则来生成。 在进行业务操作过程中,业务实体之间的关系由业务编号来描述。 IDataStore接口 数据访问操作通常在Service层完成,而当 如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。 copyright@ 2008-2022 冰点文档网站版权所有 经营许可证编号:鄂ICP备2022015515号-1
冰豆网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。