快速开发手册.docx

上传人:b****5 文档编号:6653196 上传时间:2023-01-08 格式:DOCX 页数:26 大小:218.73KB
下载 相关 举报
快速开发手册.docx_第1页
第1页 / 共26页
快速开发手册.docx_第2页
第2页 / 共26页
快速开发手册.docx_第3页
第3页 / 共26页
快速开发手册.docx_第4页
第4页 / 共26页
快速开发手册.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

快速开发手册.docx

《快速开发手册.docx》由会员分享,可在线阅读,更多相关《快速开发手册.docx(26页珍藏版)》请在冰豆网上搜索。

快速开发手册.docx

快速开发手册

appfuse快速开发手册

 

1、开发环境搭建

1.安装JDK5+

1)在官网(相关地址将在备注列出)找到jdk5或以上版本的下载链接,将其下载到本地。

本手册使用的jdk版本为jdk1.5.0_21。

2)将下载的jdk安装到C:

\ProgramFiles\Java目录下(默认安装)。

3)进入我的电脑->属性->高级->环境变量

新建系统变量:

变量名(JAVA_HOME),变量值(C:

\ProgramFiles\Java\jdk1.5.0_21)

4)在系统环境变量Path中添加:

%JAVA_HOME%\bin;

5)新建系统变量:

变量名(CLASSPATH),变量值(.;%JAVA_HOME%\lib;)

2.安装MySQL5.x

1)在官网找到MySQL5.x相关版本下载链接,将其下载到本地。

本手册使用的安装包为mysql-5.0.18-win32.zip。

2)双击安装。

 

3.安装maven

1)下载maven,最新版本为2.2.1,本手册使用的版本为2.0.9

2)将下载的压缩包解压到E盘,并将文件夹命名为maven-2.0.9(不是必须的,便于说明)。

3)新建系统变量:

变量名(MAVEN_HOME)

变量值(E:

\maven-2.0.9)

4)在系统变量Path中添加:

%MAVEN_HOME%\bin;

5)在系统变量CLASSPATH中添加:

%MAVEN_HOME%\lib;

4.安装校验

4.1jdk校验

在dos窗口下输入命令java-version如果出现类似下面的截图则说明安装配置成功

4.2MySQL校验

进入MySQL控制台,或者直接输入命令mysql-uroot-p按操作提示输入密码进入。

若此命令无效,则是因为环境变量没有添加上去,把mysql的bin目录添加到path中去。

4.3maven校验

在dos窗口下输入命令mvn--version看maven是否配置成功。

 

2、快速建立项目

本手册以建立Archetype为Struts2Basic的librarySystem项目为例,简单描述appfuse快速建立项目过程以及一些注意事项。

1.mvn命令简介

mvn为maven的缩写,通过mvn命令,可以快速构建项目。

下面对常用mvn命令进行介绍。

Ømvnarchetype:

create:

创建Maven项目

Ømvnappfuse:

gen-model根据数据库的表生成java类

Ømvnappfuse:

gen-Dentity=XXX建立所有的配置文档

Ømvnappfuse:

full-source把运行所需要的org.appfuse中的依赖类转换成你的包名称

Ømvneclipse:

eclipse生成eclipse的项目的配置文件,用户可以直接把项目导入到eclipse中

Ømvnjetty:

run-war打包并且发布你的应用程序到Jetty

Ømvnappfuse:

install把生成的源代码及配置文件写入到src中

Ømvnappfuse:

remove删除appfuse:

gen.生成的代码

Ømvnclean:

清除目标目录中的生成结果

Ømvnpackage:

项目打包

Ø...

 

2.mvn命令建立项目

在F盘建立目录myproject,在dos下进入该目录,输入以下指令:

mvnarchetype:

create-DarchetypeGroupId=org.appfuse.archetypes-DarchetypeArtifactId=appfuse-basic-struts-DremoteRepositories=http:

//static.appfuse.org/releases-DarchetypeVersion=2.0.2-DgroupId=com.librarysystem-DartifactId=librarysystem

当出现buildsuccessful表明创建成功

在dos下进入生成的librarysystem目录,运行以下命令:

mvnappfuse:

full-source

指令运行成功效果如下图:

修改默认数据库MySQL配置

org.dbunit.dataset.datatype.DefaultDataTypeFactory

CLEAN_INSERT

org.hibernate.dialect.MySQL5InnoDBDialect

mysql

mysql-connector-java

5.0.5

com.mysql.jdbc.Driver

[CDATA[jdbc:

mysql:

//localhost/librarysystem?

createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf-8]]>

root

wan

输入下面指令,启动内置服务器jetty

mvnjetty:

run

正常启动,dos控制台显示如下:

打开浏览器,输入地址:

http:

//localhost:

8080,效果如下:

 

3.项目导入eclipse以及用tomcat启动配置

在dos控制台输入下面指令,可以将生成的项目导入到eclipse中,如果IDE为idea,则使用命令mvnidea:

idea

mvneclipse:

eclipse

生成成功,显示效果如下:

Buildsuccessful后,就可以正式将该项目导入到eclipse中了,此时,在eclipse中用mvnjetty:

run-war指令运行一次,如果不出意外项目可以在jetty服务器上正常启动。

但使用tomcat服务器启动会出现问题。

需要进行下面几个地方的修改:

Ø拷贝target/librarysystem-1.0-SNAPSHOT/WEB-INF下的lib目录,将其放到src/main/webapp/WEB-INF/

Ø将target/librarysystem-1.0-SNAPSHOT/WEB-INF/classes下的所有资源文件拷贝并覆盖到src/main/resources下

Ø在项目属性中,javabuildpath----->Source去掉webapp目录。

如果有必要,更改其他源文件发布的默认输出文件夹。

如下面更改了默认的src/test/java输出目录

把User.java与Role.java中的

@Id@GeneratedValue(strategy=GenerationType.AUTO)

publicLonggetId(){

returnid;

}

变为:

@Id@GeneratedValue(strategy=IDENTITY)

publicLonggetId(){

returnid;

}

因为:

mqsql的ID是自增的,

JPA提供的四种标准用法为TABLE,SEQUENCE,IDENTITY,AUTO.

TABLE:

使用一个特定的数据库表格来保存主键。

SEQUENCE:

根据底层数据库的序列来生成主键,条件是数据库支持序列。

IDENTITY:

主键由数据库自动生成(主要是自动增长型)

AUTO:

主键由程序控制。

否则的话无法插入信息。

Ø用命令或直接清空target文件夹,重新发布到tomcat,运行,不出意外,就可以见到下面的效果了:

 

注意:

如果不将target/librarysystem-1.0-SNAPSHOT/WEB-INF/classes资源文件覆盖到src/main/resources下,而只是更改resources下的jdbc配置,项目可以运行,但可能出现乱码。

即使删除其他国际化配置,重新发布,有时任不能解决问题。

在实际操作中还经常遇到下面的异常:

严重:

Exceptionsendingcontextinitializedeventtolistenerinstanceofclassorg.springframework.web.context.ContextLoaderListener

org.springframework.beans.factory.BeanDefinitionStoreException:

Invalidbeandefinitionwithname'dataSource'definedinclasspathresource[applicationContext-resources.xml]:

Circularplaceholderreference'jdbc.driverClassName'inpropertydefinitions

造成此异常原因尚不清楚,一般可以通过下面方法解决此问题:

在项目中运行mvnpackage命令,将生成war包下的jdbc配置文件覆盖src/main/resources下的jdbc配置文件,重新启动tomcat可以即可。

 

4.appfuse目录结构简介

src:

源代码目录,需要修改的嗲吗一般都位于src下。

src/main/java:

java源代码目录,包括POJO,action等。

src/main/resources:

资源目录,各种资源文件配置。

src/main/webapp:

web应用源代码目录。

src/test:

测试源代码目录。

target:

目标文件目录。

target/classes:

源代码编译输出目录。

target/test-classes:

自动测试编译输出目录。

5.模块curd实现

以添加图书信息模块为例,介绍appfuse如何创建模块及实现curd的

在mysql的librarysystem数据库中新增表book_info,代码如下:

DROPTABLEIFEXISTS`book_info`;

CREATETABLE`book_info`(

`Id`int(11)NOTNULLauto_increment,

`book_no`int(10)NOTNULLdefault'0'COMMENT'书本编号',

`book_name`varchar(50)defaultNULLCOMMENT'图书名称',

`book_price`float(5,1)defaultNULLCOMMENT'图书价格',

`book_isbn`varchar(20)defaultNULLCOMMENT'图书的isbn编码',

`author`varchar(50)defaultNULLCOMMENT'作者',

`publish`varchar(50)defaultNULLCOMMENT'出版社',

`publish_time`datedefaultNULLCOMMENT'出版日期',

`status`smallint(4)default'0'COMMENT'书籍状态(2:

借出,1:

丢失,0:

在库)',

`in_date`datedefaultNULLCOMMENT'入库时间',

`remark`varchar(500)defaultNULLCOMMENT'备注',

PRIMARYKEY(`Id`)

)ENGINE=InnoDBDEFAULTCHARSET=utf8COMMENT='图书信息表';

建表成功后,在\src\test\resources\”下添加一个“hibernate.reveng.xml”文件内容如下:

xmlversion="1.0"encoding="UTF-8"?

>

DOCTYPEhibernate-reverse-engineering

SYSTEM">

--jdbc-typeisnamefomjava.sql.Types-->

--length,scaleandprecisioncanbeusedtospecifythemappingprecisly-->

--thetype-mappingsareordered.Thismappingwillbeconsultedlast,

thusoverridenbythepreviousoneifprecision=1forthecolumn-->

--ExcludeAppFusetablesfromallcatalogs/schemas-->

注意:

表名为小写,与数据库一致。

Exclud为true时,就是说过虑这张表,为false时,就是说对这张表建立model。

运行命令mvnappfuse:

gen-model

[INFO]Copyinggenerated'BookInfo.java'toproject...

[INFO]------------------------------------------------------------------------

[INFO]BUILDSUCCESSFUL

[INFO]------------------------------------------------------------------------

[INFO]Totaltime:

10seconds

[INFO]Finishedat:

MonDec0622:

00:

29CST2010

[INFO]FinalMemory:

18M/42M

成功后,生成BookInfo.java中会有错误,把

@Id@GeneratedValue(strategy=IDENTITY)@GeneratedValue(strategy=GenerationType.AUTO)

publicLonggetId(){

returnthis.id;

}

改为:

@Id@GeneratedValue(strategy=IDENTITY)

publicLonggetId(){

returnthis.id;

}

生成model成功后,运行以下命令,生成对应的配置文件及对应的jsp页面

mvnappfuse:

gen-Dentity=BookInfo

指令运行成功后,在浏览器中便可以见到初始效果。

国际化:

修改ApplicationResources.properties配置文件,替换BookInfo相关对应中文含义

bookInfo.id=Id

bookInfo.author=作者

bookInfo.bookIsbn=Isbn

bookInfo.bookName=图书名

bookInfo.bookNo=图书编号

bookInfo.bookPrice=价格

bookInfo.inDate=入馆日期

bookInfo.publish=出版社

bookInfo.publishTime=出版时间

bookInfo.remark=备注

bookInfo.status=图书状态

bookInfo.added=图书信息添加成功

bookInfo.updated=图书信息更新成功

bookInfo.deleted=图书信息删除成功

..............

改完后,重新启动项目,显示效果如下

校验:

针对form表单的校验,可以在页面通过javaScript验证,也可以通过struts提供的验证框架实现。

现在要实现在添加图书信息时,要求图书名称为必填,使用struts框架校验,只需在BookInfoAction-validation.xml配置文件中加入以下语句。

输入图书信息后点保存,如果图书名称没录,便会有错误提示。

关于struts对其他字段如浮点型等可以查看官方参考文档。

 

3、插件配置

appfuse默认集成了很多标签库、插件等。

这些标签库的引入,大大提高了web项目的用户体验。

在taglibs.jsp页面中,可以看到他们是如何被引进项目的。

taglibs.jsp内容如下:

<%@pagelanguage="java"errorPage="/error.jsp"pageEncoding="UTF-8"contentType="text/html;charset=utf-8"%>

<%@tagliburi="http:

//www.springframework.org/security/tags"prefix="security"%>

<%@tagliburi=""prefix="display"%>

<%@tagliburi="http:

//struts-prefix="menu"%>

<%@tagliburi="prefix="c"%>

<%@tagliburi="prefix="fmt"%>

<%@tagliburi="prefix="fn"%>

<%@tagliburi="prefix="sql"%>

<%@tagliburi="prefix="cache"%>

<%@tagliburi="prefix="decorator"%>

<%@tagliburi="prefix="page"%>

<%@tagliburi="/struts-tags"prefix="s"%>

<%@tagliburi="http:

//www.appfuse.org/tags/struts"prefix="appfuse"%>

如果我们想在项目中使用其他一些框架,比如说extJS、dwr、jamon等等,我们需要在项目中配置他们。

1.ExtJS

ExtJs简介:

ExtJS可以用来开发RIA也即富客户端的AJAX应用,是一个用javascript写的,主要用于创建前端用户界面,是一个与后台技术无关的前端ajax框架。

因此,可以把ExtJS用在.Net、Java、Php等各种开发语言开发的应用中。

从官方下载ExtJS压缩包,目前最高版本为3.2.1,将下载的压缩包解压到项目的src/main/webapp/scripts。

在default.jsp文件中,加入下面代码段:

这样项目中每个jsp页面都可以使用ExtJS控件了。

在新增加的bookInfoForm.jsp增加下面代码段:

Form.focusFirstElement($("bookInfoForm"));

Ext.onReady(function(){

varbookInfo_publishTime_DateField=newExt.form.DateField({

id

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1