COTS应用程序开发简介

应用程序设计完成后,相应的数据层结构、业务组件和大致地展现逻辑都已经被确定。

应用程序开始开发前可先拷贝框架提供的一个Web Application的模板到应用服务器的部署目录下。然后进行下面将要介绍的三个步骤,其中数据层的建立是基础,完成后,可并行进行业务逻辑和JSP的开发,因为这两者没有直接的联系。

为方便理解和阐述,在下文中我们假设Apache Tomcat5.5为web服务器,Web Application的Context Path为/WebApp,并且所有的操作都是在本地(应用服务器所在的机器)进行。

数据层开发

首先根据设计阶段完成的ER图编写SQL脚本,并执行这些SQL脚本,建立所有的数据库。

然后配置blcontext-local.xml文件,对每个数据库(新建立的数据库,或者已经存在但本应用程序需要访问的数据库)配置一个DAO组件(该配置可以时JDBC配置,也可以是DataSource配置),并给每个DAO起一个有明确意义的名字。一个配置的例子如下:

<daos>

<dao>

<!--name of the DAO object-->

<name>core</name>

<!--JDBC configuration below-->

<!--database type, one of the oracle, sql, mysql-->

<dbType>oracle</dbType>

<!--<dbUser>cotsadmin</dbUser>

<dbPassword>ZagHnJ82</dbPassword>

<dbURL>jdbc:oracle:thin:@127.0.0.1:1521:gldnsky</dbURL>

<driver>oracle.jdbc.driver.OracleDriver</driver>

<dbConnections>10</dbConnections>-->

<!--data source configuration below-->

<datasource xa="fasle" overrideUser="false">java:comp/env/jdbc/gldnskyJNDI</datasource>

</dao>

</daos>

然后启动应用服务器。打入如下URL:http://locahhost:8080/WebApp/jsp/sys/listDAOs.  我们可以看到配置的三个DAO的名字:

假设选择test后:

选择“创建表的系统信息”,系统将根据每个表结构的在数据字典中创建系统信息部分。创建完毕之后,选择设置表的自定义信息,出现下面的界面:

更新Test1表的自定义信息:字段的中文名,显示方式,显示顺序,是否是主键,字段的来源,引用表的名称,引用表中的字段名,系统会根据这些信息自动生成JSP代码。

最后向业务数据字典中插入两条记录,分别是,(“Test1”,”gender”,”f”,”女”),和(“Test1”,”gender”,”m”,”男”)。

除可以通过COTS的开发工具来生成表信息数据词典外,还可通过应用程序com.dream.bizsdk.common.util.DataDictToolW来完成。通过命令行运行java com.dream.bizsdk.common.util.DataDictToolW,出现如下界面:

在输入框中输入正确的数据库用户名,密码和DBURL,点击Connect在左侧文本域中将会列出数据库下所有的数据表名,如下界面

如果没有创建过数据字典,点击Build开始自动创建过程。如果以前创建过数据字典可以点击Update按钮完成更新。点击Clear将会清空数据字典。

业务层开发

业务组件都必须直接或间接从AbstractBLC继承。COTS还提供了另外一个基类DBBLC,业务组件如果从此类继承,则将自动继承了访问数据库的功能。业务组件可以自由的调用包括DAO在内的基础组件的方法。一个简单的例子如下:

package org.redtroy.test;

import java.sql.SQLException;

import com.dream.bizsdk.common.blc.AbstractBLC;

import com.dream.bizsdk.common.databus.BizData;

public class Test extends AbstractBLC {

public int doTest(BizData rd,BizData sd){

String hello=rd.getString("hello");

sd.add("hello",hello);

try{

int rows=coreDAO.executeQuery("select * from test","tests",rd);

//System.out.println(rows);

}catch(SQLException sqle){

sqle.printStackTrace();

}

return 1;

}

}

展现层开发

展现层除了可以调用数据对象的getter方法外,还可以调用数据字典的两个方法:DataDict.getFieldLength(String tableName,String colName),这样JSP页面中可以跟数据字典同步,当数据字典中某个字段的长度发生变化时,无需修改页面;另外一个方法是:DataDict.getCSSClass(String tableName,String colName);这个决定一个字段的类型是否是必填项和类型等相关信息。

请求配置

客户请求的名称一般情况下对应着一个form的action(不包含URL匹配的字符串,例如*.do的action由COTS框架来处理,则在配置请求时,请求的名称不包含”.do”),当客户端请求这个action时,COTS框架会根据这个客户请求的配置,决定调用什么样的业务逻辑和视图。

在/WEB-INF/requests/*-reqs.xml中进行客户请求的配置,该请求将业务逻辑-视图连接在一起。请求配置好后,重新启动应用服务器,开发就完成了。

下面以一个最基本的实例来说明这个问题,客户请求的名称getCurrentRate的配置如下:

<request>

<name>getCurrentRate</name>

<model name=”com.mm.Exchange.getCurrentRate”>

<dispatch url=”” type=”forward”/>

</request>

在一个form中以如下形式发出这个请求:

<form action=”getCurrentRate.do” method=”post”>

<input type=”text” name=”moneyTypeID”>

……

</form>

那么这个form在提交的时候,由于其action以“.do”结尾,因此被匹配到COTS框架的控制器,控制器将以”.do”前面的部分,也就是getCurrentRate作为客户请求的名字,并在请求配置文件中查找这个请求的信息,然后进行相应的处理。

COTS应用程序开发框架简介(二)相关推荐

  1. COTS应用程序开发框架简介(一)

    COTS应用程序框架简介 J2EE以其成熟的架构.优秀的跨平台特性和稳定的性能表现等正逐渐成为企业应用的首选技术体系.但是由于多种因素,开发J2EE程序是一个相对较复杂的过程,很多基于J2EE的项目最 ...

  2. COTS应用程序开发框架简介(三)

    COTS应用程序部署和安装 应用程序包结构 一个应用开发完成后打成一个ear包,如果是单纯的web应用,则只需打成一个或者多个war包即可.每个war包下面/WEB-INF/sqlscripts,存放 ...

  3. 微信小程序怎么在wxml中插入多个图片_闲聊微信小程序开发框架(二)

    在前面一篇文章中我们介绍了小程序开发框架的几个组成部分,今天就让我们了解一下小程序开发框架的底层架构是如何实现的. 小程序的开发框架成为MINA框架,通过上面的框架图我们可以看到三个部分.首先是Vie ...

  4. 基于富盛SBO程序开发框架的自动序列生成器

    很多时候,我们期望系统中的某些关键字段可以按照我们期望的条件自动生成,比如,员工代码,商品序列号,商品条形码等.的确,针对个体业务,要实现这种自动生成方法很多,那么是否可以实现可以支持所有业务的序列生 ...

  5. mpvue 微信小程序api_第三方框架与原生微信小程序开发框架性能之比较 | Q荐读...

    作者 | 崔红保编辑 | 王莹 自 2017年1月9日微信小程序诞生以来,历经 2 年多的迭代升级,已有数百万小程序上线,成为继 Web.iOS.Android 之后,第四大主流开发技术. 与之相随, ...

  6. 基于JavaSSM和微信小程序的智能二维码门禁管理系统

    目录 1 引言 2 2 系统需求分析 2 2.1开发环境 2 2.2关键技术 2 2.2.1 Spring 框架 2 2.2.2 Spring MVC 框架 3 2.2.3 Mybatis 3 2.2 ...

  7. 常用小程序开发框架浅析

    小程序第三方框架对比 ( wepy / mpvue / taro /Mpx /OKAM) 众所周知如今市面上端的形态多种多样,手机Web.ReactNative.微信小程序, 支付宝小程序, 快应用等 ...

  8. 比较实用的微信小程序开发框架和工具

    [微信小程序开发框架] 1.官方框架MINA 小程序提供的开发框架为MINA框架,它类似于淘宝Weex.Vue框架.MINA框架通过封装微信客户端提供的文件系统.网络通信.任务管理.数据安全等基础功能 ...

  9. 计算机新应用外文翻译,计算机 外文翻译 外文文献 英文文献及译文一种新的网络应用程序开发框架MVC...

    计算机 外文翻译 外文文献 英文文献及译文一种新的网络应用程序开发框架MVC 译文一:一种新的网络应用程序开发框架--MVC *摘要MVC(Model/View/Controller)的设计模式出现在 ...

最新文章

  1. python进程间通信 listener_python进程间通信之Queue
  2. form表单提交不刷新页面的方法
  3. VTK:标签轮廓用法实战
  4. scala与java混合编译出现的问题
  5. 机器学习笔记(4):多变量线性回归
  6. 正大天晴与阿里云合作,AI制药提高化合物筛选准确率20% 新药研发困难重重?正大天晴与阿里云合作用AI寻找解决办法...
  7. MarkDown基础语法记录
  8. ubuntu 安装mysql 5.5.28 编译安装 innodb 配置
  9. STM32电机控制--API函数应用
  10. 常见网络设备口令备忘录
  11. pg_bigm与pg_trgm的安装、测试、对比
  12. linux的一页是多大
  13. 【电子器件笔记4】电感参数和选型
  14. 2021考研数学汤家凤大纲解析
  15. MAYA XGen创建毛发时报错找不到过程“XgCreateDescription“的解决方法
  16. 数据安全加密技术分析
  17. nginx限制指定ip访问
  18. AES加解密算法详解
  19. android如何从json字符串中取自己想要的数据
  20. 静态时序分析(STA)附秋招面试提问

热门文章

  1. 个人日记-电影《夏日友晴天》观后感-2021-08-25
  2. 用VBOX打造一台高配安卓手机(windows)
  3. 如何将手机投屏到windows10上?
  4. 【嵌入式】GPIO驱动LED设计
  5. java 宕机_Java应用/JVM宕机排查步骤操作
  6. fpga nvme 寄存器
  7. 干货,实战滴滴开源Logi-KafkaManager
  8. 创建自定义类型转换器
  9. 搜款网新接口的展示过程
  10. [Pytorch] ValueError: sampler option is mutually exclusive with shuffle