wmframework v2.0 手册(1-2)系统框架介绍 spring等

wmframework v2.0 手册(一)系统框架介绍

 

  一、 相关主要技术

1、Spring

Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。

 

 

•核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。

•Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。

•Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。

 

2、Struts2

Struts2是以WebWork的设计思想为核心

 简单处理流程如下:

        1)浏览器发送请求

        2)中心处理器根据struts.xml文件查找对应的处理请求的Action类

        3)WebWork的拦截器链自动对请求应用通用功能,例如:WorkFlow、Validation等功能

        4)如果Struts.xml文件中配置Method参数,则调用Method参数对应的Action类中的Method方法,否则调用通用的Execute方法来处理用户请求

         5)将Action类中的对应方法返回的结果响应给浏览器

3、 ibatis 

ibatis 是一个 O/R Mapping 解决方案, ibatis 最大的特点就是小巧,上手很快。如果你不需要太多复杂的功能, ibatis 是能满足你的要求又足够灵活的最简单的解决方案。ibatis 以SQL开发的工作量和数据库移植性上的让步,为系统 设计提供了更大的自由空间。

ibatis 底层采用纯JDBC操作,要求操作人员直接编写sql进行操作,光从这点看,ibatis本身就大大地提高数据层操作的透明度。

4、 XML

XML允许开发者建立他们的属于自己的保存信息的标记结构.

XML解析语法是非常明确,而且是一种广泛应用的工具, 它能从在各种各样的环境中XML文件使获得知识.在Unicode基础的基础上建立XML使它更容易建立使国际化文件.

应用能依赖XML分析器确定结构的可靠性,以及进行数据类型检查

XML格式置于文本使他们变得更有阅读,更容易用文件保证其有效性,更容易纠正错误。

XML文件能够利用大部建立在浏览器中的资源。

XML主要有3个组成元素:Schema(模式)、XSL(可扩展样式语言)和XLL(可扩展链接语言)。

 

 

5、ajax

Ajax 由 HTML、JavaScript™ 技术、DHTML 和 DOM 组成,这一杰出的方法可以将笨拙的 Web 界面转化成交互性的 Ajax 应用程序,AJAX即“Asynchronous JavaScript and XML”(异步JavaScript和XML)

 

 

 

主要包含的技术

 

  基ajax调用周期web标准(standards-based presentation)XHTML+CSS的表示;

  使用 DOM(Document Object Model)进行动态显示及交互;

 

  使用 XML 和 XSLT 进行数据交换及相关操作;

 

  使用 XMLHttpRequest 进行异步数据查询、检索;

 

  使用 JavaScript 将所有的东西绑定在一起。

 

  类似于DHTML或LAMP,AJAX不是指一种单一的技术,而是有机地利用了一系列相关的技术。事实上,一些基于AJAX的“派生/合成”式(derivative/composite)的技术正在出现,如“AFLAX”。

 

AJAX的应用使用支持以上技术的web浏览器作为运行平台。这些浏览器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。但是Opera不支

 

持XSL格式对象,也不支持XSLT。

 

 

 

二、wmframework系统流程框架

 

1、总体框架

 

2、处理时序


3、前台处理流程

4、后台处理流程

5、前台对象UML

6、后台对象UML

7、交互模型

 

三、 运行环境

tomcat6.0

以上

myeclipse5.0以上

eclipse3.2

jdk6.0

ibatis2.0

struts2.0

spring2.0


wmframework v2.0 手册(二)系统代码生成

1、总体介绍 
   wmframework实现了基于数据库系统代码自动生成,并完成有两种可供选择的代码生成方式:web代码自动生成系统、可安装插件方式。这里我们提倡使用后者;
   可自动生成的文件类型如下: domain(pojo),mapping,sql-map-conf.xml,jsp,dao,spring配置文件,struts2配置文件,对于dao、spring配置文件、struts2配置文件不提倡自定义生成,因为系统已实现有通过处理流程框架;
   依据客户或系统需求,可自行定义jsp模板。对于xml、java文件等表头注解,格式内容也可自行定义。
 
2、方式一:web代码自动生成系统
 
    一个基于wmframework自行开发的web代码自动生成系统,提供程序员远程访问,选择并确认当前需要生成数据表。整个代码生成过程在由代码生成系统统一处理,并提供url链接实时下载使用。
主要执行操作对象:
com.wmframework.codegen.ModuleGenerator 代码生成执行接口
com.wmframework.codegen.Convert 数据转换对象
com.wmframework.codegen.replace.FileReplace文件替换对象
com.wmframework.codegen.replace.TempleReplace 行数据模版替换对象


传递后台字符串格式说明
*fnstr参考格式:fn1--fn2--...fnn
*format :fieldname-fieldvalue-type-optionname-vos-vo-functionname
*          0      1         2       3      4 5  6
*desc:  字段名称-字段中文名称-元素类型-下拉集合-vos对象-vo对象ID-执行函数
*example:   用户名称-0-null-oaUser-user1-insertUser
 

2.1 查询页面生成
 
    进入http://192.168.0.58:8080/autocode/ 主页面,点击转向查询页面生成,选择操作数据表后,系统自动给出“查询条件列”、“查询结果列”、“查询结果数据对象”等,请确保查询条件和查询结果列的正确选择,同时确认当前生成 相关执行函数是否与sqlmap中的名称一致。


查询页面生成模版为: WebRoot/temple/listtmp.jsp


2.2 编辑页面生成

    进入http://192.168.0.58:8080/autocode/ 主页面,点击转向编辑页面生成,选择操作数据表后,系统自动给出“新增内容列选择”、“数据对象”等,请确保编辑内容列的正确选择,同时确认当前生成 相关执行函数是否与sqlmap中的名称一致。


编辑页面生成模版为: WebRoot/temple/addtmp.jsp


2.3 查看页面生成

    进入http://192.168.0.58:8080/autocode/ 主页面,点击转向明细页面生成,选择操作数据表后,系统自动给出“明细显示列选择”、“结果数据对象”等,请确保编辑内容列的正确选择,同时确认当前生成 相关执行函数是否与sqlmap中的名称一致。


明细页面生成模版为: WebRoot/temple/detailtmp.jsp

3、方式二:插件代码生成器

wmframework代码生成器主要是基于ibatis的插件ibator改写而得

  • 使用模式

基于myeclipse插件安装即可。

  •  文件类型

当前可自动生成的文件类型如下: domain,mapping,sql-map-conf.xml,jsp,dao,spring配置文件,struts2配置文件(不提倡,当前系统架构有通用action),其中jsp页面存在模板定制

  • 生成方式

多工程(多个工程一次全部生成),整库(整个数据表一次全部生成),定制表(自定义需要生成数据表)

一个简单的配置文件如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
< span style="font-family: 宋体;"><? xml version="1.0" encoding="UTF-8" ?>
<! DOCTYPE ibatorConfiguration PUBLIC "-//Apache Software Foundation//DTD Apache iBATIS Ibator Configuration 1.0//EN" "http://ibatis.apache.org/dtd/ibator-config_1_0.dtd" >
< ibatorConfiguration >
 
<!-- 当前插件使用序列号 -->
< license serialno="302C02144329F4612A8B919AC1B2D22C2ACBB46525A2AD96021473B968B27095B19FB26970AEB3BE79D9BC9F83F3"/>
 
     <!-- 加载当前数据库驱动包 -->
     < classPathEntry
     location="D:/wmworkspace/ibator/WebRoot/WEB-INF/lib/mysql-connector-java.jar" />
 
     <!-- 定义当前context标志,即当前提供多个Project同时生成 -->
     < ibatorContext id="context1" projectId="WM">
         <!--
             定义contextId(必须),当前工程Id(选填,默认为系统架构简称WM)
         -->
 
         <!-- 工程文件(xml,jsp,js,java,properties等)注解定义,这里可扩展或自行定制  -->
         < commentGenerator >
             < property name="title" value="Copyright (c) 2010 WMframework我们团队开发" />
             <!--
                 文件头
             -->
             < property name="Description" value="" /> <!-- 当前文件功能描述  -->
             < property name="author" value="warison" /> <!-- 作者  -->
             < property name="email" value="warison@126.com" />
             <!--
                 联系方式
             -->
             < property name="verison" value="2.0" /> <!-- 当前版本  -->
         </ commentGenerator >
 
         <!-- 数据库连接JDBC方式定义  -->
         < jdbcConnection driverClass="com.mysql.jdbc.Driver"
             connectionURL="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8"
             userId="root" password="wsc" dbType="mysql" remarks="true" />
         <!--
             可选,定义数据库类型(oracle,MYSQL,DB2,SQLSERVER,CLOUDSCAPE,DERBY,HSQLDB,SYBASE,DB2_MF),值不区分大小写
         -->
         <!--
             <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
             connectionURL="jdbc:oracle:thin:@192.168.0.181:1521:zfaq"
             userId="aqgl" password="elink2010" dbType="oracle" remarks="true"/>
         -->
 
         <!-- 数据模型生成定义  -->
         < javaModelGenerator targetPackage="com.client.domains"
             targetProject="D:\wmworkspace\ibator\src" encoding="utf-8">
             <!--
                 工程路径(绝对路径,插件形式时需要指定context即可), 数据模型存放路径,文件编码方式(可选,不提倡使用)
             -->
             <!--
                 插件形式下定义 <javaModelGenerator targetPackage="com.domains"
                 targetProject="ibator" >
             -->
             < property name="rootClass" value="com.base.ParentDomain" />
             <!--
                 数据模型父类定义
             -->
         </ javaModelGenerator >
 
         <!-- ibatis SQLMAP 生成定义  -->
         < sqlMapGenerator targetPackage="com.client.mappings"
             targetProject="D:\wmworkspace\ibator\src" encoding="utf-8" />
         <!--
             工程路径(绝对路径,插件形式时需要指定context即可), 数据模型存放路径,文件编码方式(可选,不提倡使用)
         -->
 
         <!--
             插件形式下定义 <javaModelGenerator targetPackage="com.client.mappings"
             targetProject="ibator" >
         -->
     <!-- jsp页面生成定 -->
         < jspGenerator targetPackage="com.client.jsp"
             targetProject="D:\wmworkspace\ibator\src" templePackage="" />
 
         < daoGenerator targetPackage="com.client.daos"
             targetProject="D:\wmworkspace\ibator\src" type="GENERIC-SI" />
         <!--
             已经被屏蔽生成了
         -->
 
         <!-- 全库一次性生成,各属性均采用默认配置 -->
         <!-- <alltable/> -->
 
         <!-- 可定制表生成, 如下定义需要生成表  -->
         < table tableName="A" domainObjectName="ADomain" >
          <!-- 可选定义项:listQryFlds 查询条件字段 listResultFlds 查询结果字段 isIdx 是否需要序号列  isCheck是否需要选择列-->
            < jsplist listQryFlds="user_id,user_name" listResultFlds="user_id,user_name" isIdx="false" isCheck="false"></ jsplist >
            <!-- 可选定义项:detailFlds 查看显示字段  -->
             < jspdetail detailFlds="user_id,user_name"></ jspdetail >
             <!-- 可选定义项:addFlds 新增、修改显示字段  -->
             < jspadd addFlds="user_id,user_name"></ jspadd >
         </ table >
         <!-- <table tableName="sub_a" />  -->
         <!-- <table tableName="A" domainObjectName="ADomain"> -->
         <!--
             tableName数据表名,数据模型别名定义
         -->
         <!-- 可选,主键生成定义,其实这里也支持某个字段,并非一定为PK -->
         <!--
             数据库 sql 生成 key形式 sqlStatement:
             可定义为数据库类型(DB2,MYSQL,SQLSERVER,CLOUDSCAPE,DERBY,HSQLDB,SYBASE,DB2_MF)或某条可执行sql语句
             identity: 是否返回当前生成id type:pre\ post
         -->
         <!--
             <generatedKey column="USER_ID" sqlStatement="select
             seq_user_key.nextvalue from dual" identity="false" ></generatedKey>
             <generatedKey column="USER_ID" sqlStatement="mysql" identity="false"
             ></generatedKey>
         -->
         <!--  classKey 不带参数形式 -->
         <!--
             <classKey column="USER_ID" className="test.util.GenerateSerial"
             methodName="getUUID" identity="false" ></classKey>
         -->
         <!--  带参数形式 -->
         <!--
             <classKey column="USER_ID" className="test.util.GenerateSerial"
             methodName="getUUID" identity="false" args="1,2"
             paramTypes="java.lang.String,int"></classKey> </table>
         -->
 
     </ ibatorContext >
</ ibatorConfiguration >
</ span >

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值