快速开发手册.doc_第1页
快速开发手册.doc_第2页
快速开发手册.doc_第3页
快速开发手册.doc_第4页
快速开发手册.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

appfuse快速开发手册1、 开发环境搭建1. 安装JDK 5+1) 在官网(相关地址将在备注列出)找到jdk5或以上版本的下载链接,将其下载到本地。本手册使用的jdk版本为jdk1.5.0_21。2) 将下载的jdk安装到C:Program FilesJava目录下(默认安装)。3) 进入 我的电脑-属性-高级-环境变量新建系统变量:变量名(JAVA_HOME), 变量值 (C:ProgramFilesJavajdk1.5.0_21)4) 在系统环境变量Path中添加:%JAVA_HOME%bin;5) 新建系统变量:变量名(CLASSPATH), 变量值 (.;%JAVA_HOME%lib;)2. 安装MySQL 5.x1) 在官网找到MySQL 5.x相关版本下载链接,将其下载到本地。本手册使用的安装包为mysql-5.0.18-win32.zip。2) 双击安装。3. 安装maven1) 下载maven,最新版本为2.2.1,本手册使用的版本为2.0.92) 将下载的压缩包解压到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.1 jdk校验在dos窗口下输入命令 java -version如果出现类似下面的截图则说明安装配置成功4.2 MySQL校验进入MySQL控制台,或者直接输入命令mysql -uroot -p按操作提示输入密码进入。若此命令无效,则是因为环境变量没有添加上去,把mysql的bin目录添加到path中去。4.3 maven校验在dos窗口下输入命令mvn -version看maven是否配置成功。2、 快速建立项目本手册以建立Archetype为Struts 2 Basic的librarySystem项目为例,简单描述appfuse快速建立项目过程以及一些注意事项。1. mvn命令简介mvn 为maven的缩写,通过mvn命令,可以快速构建项目。下面对常用mvn命令进行介绍。 mvn archetype:create :创建 Maven 项目 mvn appfuse:gen-model 根据数据库的表生成java类 mvn appfuse:gen -Dentity=XXX 建立所有的配置文档 mvn appfuse:full-source 把运行所需要的org.appfuse中的依赖类转换成你的包名称 mvn eclipse:eclipse 生成eclipse的项目的配置文件,用户可以直接把项目导入到eclipse中 mvn jetty:run-war 打包并且发布你的应用程序到Jetty mvn appfuse:install 把生成的源代码及配置文件写入到src中 mvn appfuse:remove 删除appfuse:gen.生成的代码 mvn clean :清除目标目录中的生成结果 mvn package:项目打包 .2. mvn命令建立项目在F盘建立目录myproject,在dos下进入该目录,输入以下指令:mvn archetype:create -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-basic-struts -DremoteRepositories=/releases -DarchetypeVersion=2.0.2 -DgroupId=com.librarysystem -DartifactId=librarysystem当出现build successful表明创建成功 在dos下进入生成的librarysystem目录,运行以下命令:mvn appfuse: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 root wan输入下面指令,启动内置服务器jettymvn jetty:run正常启动,dos控制台显示如下:打开浏览器,输入地址:http:/localhost:8080,效果如下:3. 项目导入eclipse以及用tomcat启动配置在dos控制台输入下面指令,可以将生成的项目导入到eclipse中,如果IDE为idea,则使用命令mvn idea:ideamvn eclipse:eclipse生成成功,显示效果如下:Build successful后,就可以正式将该项目导入到eclipse中了,此时,在eclipse中用mvn jetty: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下 在项目属性中,java build path -Source去掉webapp目录。如果有必要,更改其他源文件发布的默认输出文件夹。如下面更改了默认的src/test/java输出目录把User.java与Role.java中的 Id GeneratedValue(strategy=GenerationType.AUTO) public Long getId() return id; 变为: Id GeneratedValue(strategy=IDENTITY) public Long getId() return id; 因为: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配置,项目可以运行,但可能出现乱码。即使删除其他国际化配置,重新发布,有时任不能解决问题。在实际操作中还经常遇到下面的异常:严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListenerorg.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name dataSource defined in class path resource applicationContext-resources.xml: Circular placeholder reference jdbc.driverClassName in property definitions造成此异常原因尚不清楚,一般可以通过下面方法解决此问题:在项目中运行mvn package 命令,将生成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,代码如下:DROP TABLE IF EXISTS book_info;CREATE TABLE book_info ( Id int(11) NOT NULL auto_increment, book_no int(10) NOT NULL default 0 COMMENT 书本编号, book_name varchar(50) default NULL COMMENT 图书名称, book_price float(5,1) default NULL COMMENT 图书价格, book_isbn varchar(20) default NULL COMMENT 图书的isbn编码, author varchar(50) default NULL COMMENT 作者, publish varchar(50) default NULL COMMENT 出版社, publish_time date default NULL COMMENT 出版日期, status smallint(4) default 0 COMMENT 书籍状态(2:借出,1:丢失,0:在库), in_date date default NULL COMMENT 入库时间, remark varchar(500) default NULL COMMENT 备注, PRIMARY KEY (Id) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=图书信息表;建表成功后,在srctestresources”下添加一个“hibernate.reveng.xml”文件内容如下: 注意:表名为小写,与数据库一致。Exclud为true时,就是说过虑这张表,为false时,就是说对这张表建立model。运行命令 mvn appfuse:gen-modelINFO Copying generated BookInfo.java to project.INFO -INFO BUILD SUCCESSFULINFO -INFO Total time: 10 secondsINFO Finished at: Mon Dec 06 22:00:29 CST 2010INFO Final Memory: 18M/42M成功后,生成BookInfo.java中会有错误,把 Id GeneratedValue(strategy=IDENTITY) GeneratedValue(strategy = GenerationType.AUTO) public Long getId() return this.id; 改为: Id GeneratedValue(strategy=IDENTITY) public Long getId() return this.id; 生成model成功后,运行以下命令,生成对应的配置文件及对应的jsp页面mvn appfuse:gen -Dentity=BookInfo指令运行成功后,在浏览器中便可以见到初始效果。国际化:修改ApplicationRperties配置文件,替换BookInfo相关对应中文含义bookInfo.id=IdbookInfo.author=作者bookInfo.bookIsbn=IsbnbookInfo.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内容如下:如果我们想在项目中使用其他一些框架,比如说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() var bookInfo_publishTime_DateField = new Ext.form.DateField( id:bookInfoForm_bookInfo_publishTime, name: bookInfo.publishTime, format : Y/m/d, width : 110, applyTo : bookInfoForm_bookInfo_publishTime ); ); 页面效果如下:由于extJS开发比较困难,eclipse的skpet插件提供了ext的代码提示功能,有效降低了开发难度,它不仅支持ExtJS,,还支持Jquery等,网上有很多skpet的安装指南,配置成功后,就可以比较方便的用了2. DWRDWR简介:DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。构建appfuse项目,默认集成了这一框架。现在假设我们想在jsp页面上直接调用manager中的方法,比如现在要在manifestHeadForm.jsp页面调用ManifestListManager中的方法,我们需要做下面几个操作: 修改dwr.xml配置文件在dwr.xml配置文件中添加下面代码: 修改*.jsp页面在manifestHeadForm.jsp页面中添加下面代码:script type=text/javascriptsrc=script type=text/javascript src= 在页面中以下面方式调用manager中的方法 ManifestListManager.saveManifestList(manifestInfo, callback : function() Ext.Msg.alert(,);clearForm($(manifestListForm);clearForm($(manifestGoodsForm);loadManifestListArray(manifestId);,timeout : 5000,errorHandler : function(message) Ext.Msg.alert(,););关于dwr其他使用方法及配置,可以查阅dwr百度百科或其他文档。3. JAMonJAMon(java application monitor) 简介:JAMon为缺陷管理工具。主要实现了对以下几部分代码的性能监控功能: 对JDBC的监控 对SQL的监控 对登录用户Session的监控 对页面访问的监控将JAMon集成到项目中一般需要下面几个步骤: 下载jamon压缩包我下载的是JAMon2.7,打开压缩包,其目录结构如下: 将jamon-2.7.jar以及jamon.war(可以进行解压)中lib目录下jakarta-oro-2.0.8.jar、hsqldb.jar、fdsapi-1.2.jar拷贝到项目的lib目录下。 在webapp目录新建jamon文件夹。将jamon.war(解压的文件)中文件拷贝到jamon文件夹中,web-inf,META-INF目录夹除外。 配置web.xml,增加filter,内容如下: JAMonFilter com.jamonapi.JAMonFilter JAMonFilter *.html 增加spring配置文件,在applicationContext.xml配置文件中增加类似下面的内容: bookInfoManager jamonInterceptor 现在JAMon已基本集成到项目了,我们可以使用JAMon了,输入地址:http:/localhost:8080/librarysystem/jamon/menu.jsp,可以看到下面的效果。注意:此时打开jamonadmin.jsp可能会出异常严重: Servlet.service() for servlet jsp threw exceptionjava.lang.IllegalArgumentException: setAttribute: Non-serializable attributeat org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1295)at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1256)at org.apache.catalina.session.StandardSessionFacade.setAttribute(StandardSessionFacade.java:130)at org.apache.jsp.jamon.jamonadmin_jsp._jspService(jamonadmin_jsp.java:429)at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)由于放在session中的数据必须是可序列化的。在jsp页面中由第73行代码引起的session.setAttribute(monitorComposite,mc);先将这一句注释掉,一切就ok了,显示效果如下:4、 P6SPYP6Spy 是针对数据库访问操作的动态监测框架(为开源项目,项目首页:)它使得数据库数据可无缝截取和操纵,而不必对现有应用程序的代码作任何修改。P6Spy 分发包包括P6Log,它是一个可记录任何 Java 应用程序的所有JDBC事务的应用程序。其配置完成使用时,可以进行数据访问性能的监测。它还可以对hibernate中的?以值代替。配置过程:1 把p6spy.jar 放入到项目的LIB目录中2 把perties 放入到项目的mainresource下3 修改perties文件# the mysql open source driverrealdriver=com.mysql.jdbc.Driver#specifies another driver to userealdriver2=#specifies a third driver to userealdriver3=把其驱动变为mysql的驱动# sets the date format using Javas SimpleDateFormat routinedateformat=hh:mm:ss,SSS把输出日志的前面加上时间,可以不修改#specifies the appender to use for logging#appender=com.p6spy.engine.logging.appender.Log4jLoggerappender=com.p6spy.engine.logging.appender.StdoutLogger#appender=com.p6spy.engine.logging.appender.FileLogger把日志输出到控制台4 修改perties文件把其修改为:jdbc.driverClassName=com.p6spy.engine.spy.P6SpyDriverjdbc.url=jdbc:mysql:/localhost/librarysystem?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf-8jdbc.username=rootjdbc.password=123hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect# Needed by Hibernate3 Maven Plugin defined in pom.xmlhibernate.connection.username=roothibernate.connection.password=123hibernate.connection.url=jdbc:mysql:/localhost/librarysystem?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf-8hibernate.connection.driver_class=com.p6spy.engine.spy.P6SpyDriverhibernate.show_sql=false完成配置,你将会看到在控制台输出的?后面均会有值。5、 oscacheOSCache是OpenSymphony这个开源项目众多Projects中的一个。他是一个高效的J2EE缓存框架,能够很好的解决动态网站速度的问题配置过程1 oscache-2.3.jar已存在LIB目录中了,故无需添加。2 o

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论