`

开发一个JAVA版本的博客系统 -- Fuseblog 的计划 1

阅读更多
 logo 设计不会,就这样先凑合了
写道
Fuseblog预备开发带在线SHOP功能的个人博客系统.仿照Appfuse
提供一个完全自动化的ant构建脚本.在线SHOP的数据库建模图例已经
在博客中贴出.感兴趣的和我一起搭建,嘻嘻


文档博客地址: http://forum.sinomagazine.com

开发环境:
Jcreator-4.5 JDK-1.5 Ant-1.6.1 MYSQL-5 Tomcat-5.5
Spring-2.5.6 Ibatis-2.3.4

问题事项:
1.在windows系统中,命令行中执行ant命令时,当指定的
构建脚本文件中包含中文字符,而构建脚本文件的编码是UTF-8时将会
Invalid byte 1 of 1-byte UTF-8 sequence. 的错误.这个问题尚未
知解决,故先采用GBK的编码.
2.在Jcreator中创建的项目,不支持UTF-8编码,缺省GBK.

 

以下先列出初步的的ant构建文件的代码: build.xml

<?xml version="1.0" encoding="GBK"?>

<project name="fuseblog" default="all" basedir=".">
    <description>
    	<![CDATA[
    		Fuseblog预备开发带在线SHOP功能的个人博客系统.仿照Appfuse
    	提供一个完全自动化的ant构建脚本.在线SHOP的数据库建模图例已经
    	在博客中贴出.感兴趣的和我一起搭建,嘻嘻
    		
    		文档博客地址: http://forum.sinomagazine.com
    	
    	开发环境:
    		Jcreator-4.5 JDK-1.5 Ant-1.7.0 MYSQL-5 Tomcat-5.5
    		Spring-2.5.6 Ibatis-2.3.4    		
    	
    	问题事项: 
    		1.在windows系统中,命令行中执行ant命令时,当指定的
    	构建脚本文件中包含中文字符,而构建脚本文件的编码是UTF-8时将会
    	Invalid byte 1 of 1-byte UTF-8 sequence. 的错误.这个问题尚未
    	知解决,故先采用GBK的编码.
    		2.在Jcreator中创建的项目,不支持UTF-8编码,缺省GBK.
    	]]>
    </description>
    
    <target name="all">
        <!-- TODO define script. See http://ant.apache.org/ -->
    </target>
    
    <!--<![CDATA[
    	定义项目使用的目录结构	用到的属性
    ]]>-->
    
    <property name="src.dir" value="src"/>
    <property name="lib.dir" value="lib"/>
    <property name="test.dir" value="test"/>
    <property name="war.dir" value="war"/>
    <property name="class.dir" value="${war.dir}/classes"/>
    <property name="test.class.dir" value="${test.dir}/classes" />
    
    
    <!--<![CDATA[ 组动作说明    	
    	动作: 定义项目中的classpath环境变量
    ]]>-->    
    <path id="fuseblog.class.path">
    	<fileset dir="${lib.dir}/spring-2.5.6/dist/modules">
	        <include name="*.jar"/>
	        <exclude name="spring-webmvc-struts.jar"/>
	        <exclude name="spring-test.jar"/>
	    </fileset>
	    
	    <pathelement location="${lib.dir}/log4j-1.2.15/log4j.jar" />
	    <pathelement location="${lib.dir}/j2ee/servlet-api.jar" />
	    <dirset dir="${basedir}" />
	    <dirset dir="${class.dir}" />
	    
    </path>
    
    <path id="junit.class.path">
    	<path refid="fuseblog.class.path" />
    	<pathelement location="${lib.dir}/junit-3.8.2/junit.jar" />
    </path>
    
    <!--<![CDATA[
    	动作: 初始化项目构建过程所需的资源	
    ]]>-->
    <target name="init">
    	<mkdir dir="${class.dir}"></mkdir>
    	<mkdir dir="${test.class.dir}"></mkdir>
    </target>
    
    
    
    <!--<![CDATA[
    	动作: 编译项目中的源文件	
    ]]>-->
    <target name="compile" depends="init">
	    <javac srcdir="${src.dir}" destdir="${class.dir}" />	    	
    </target>
  	
  	
    <!--<![CDATA[
    	动作: 编译用于单元测试的源文件	
    ]]>-->   
  	<target name="compile.test" depends="init">
	    <javac srcdir="${test.dir}" destdir="${test.class.dir}"
	    	classpathref="junit.class.path">
	    </javac>	    	
    </target>
  	
	
    <!--<![CDATA[
    	动作: 清除构建的资源	
    ]]>-->
    <target name="clean">
    	<deltree dir="${class.dir}" />
    	<deltree dir="${test.class.dir}" /> 	
    </target>
    
    
    <!--<![CDATA[
    	动作: 运行项目
    ]]>-->
    <target name="run">
    	<java classname="com.sinomagazine.fuseblog.FuseBlog"
    		 classpath="${class.dir}" fork="yes"></java>
    </target>
    
    
    <!--<![CDATA[
    	动作: 运行项目的单元测试代码
    	注明: 这个标签刚刚学习,很生疏,呵呵
    ]]>-->
    <target name="test" depends="compile.test,compile">
    	<junit printsummary="withOutAndErr" 
    		haltonfailure="no" haltonerror="no" fork="yes">
    		
    		<classpath refid="junit.class.path" />
    		<formatter type="xml" usefile="true" />
    		<batchtest todir="${test.dir}">
    			<fileset dir="${test.class.dir}">			    
			        <include name="*Test.*"/>
			    </fileset>	
    		</batchtest>    		
    	</junit>
    </target>
    
    
    <!--<![CDATA[
    	动作: 运行ant脚本时出现5秒的logo提示
    ]]>-->
    <splash imageurl=""
           useproxy="true"
           showduration="2000"/>
    
</project>

 

由于在其中 使用了 <junit>标签,所以需要将junit.jar拷贝到ant的lib目录下...

 

 

FuseBlog.java

package com.sinomagazine.fuseblog;


public class FuseBlog {
	
	public static void main(String[] args) {
		System.out.println ("Fuseblog 应用程序");
	}
	
	@Override
	public String toString(){
		return "Fuseblog 应用程序" ;
	}
}

 

test\FuseBlogTest.java

import junit.framework.TestCase;

import com.sinomagazine.fuseblog.FuseBlog ;

public class FuseBlogTest extends TestCase {
	private FuseBlog fuseblog ;
	
	@Override
	public void setUp(){
		this.fuseblog = new FuseBlog();
	}
	
	
	public void testToString(){
		assertNull(this.fuseblog.toString());
		assertNotNull(this.fuseblog.toString());
		assertEquals(this.fuseblog.toString(),"Fuseblog 应用程序");
	}
}

 

在此搭建出了项目的初步结构代码,并且集成了自动化的单元测试功能...

 

然后进入命令提示符,切换到当前项目的文件夹,输入:

写道
ant test

将会显示如下图所示内容:

 

  • 大小: 46.5 KB
  • 大小: 29.7 KB
  • 大小: 36.9 KB
  • 大小: 1.8 KB
7
1
分享到:
评论
3 楼 vb2005xu 2009-08-25  
引用
网上商城需求文档分析

写的很混乱,请指出
引用

网上商城需求文档分析

1. 用户功能需求

商品信息管理
订单信息管理
销售信息管理
产品支付/配送方式


1.1 商品信息管理
后台管理员动态管理系统中的商品信息。

1.1.1 商品分类的管理:
后台管理员可以在此处添加/修改/删除商品的类型信息,包括对如下信息的操作(分类名称、商品数量、数量单位
导航栏、是否显示、价格分级、排序、操作 ),此处分类支持无限子分类功能.

1.1.2 商品列表
后台管理员可以此处维护修改公司的商品信息,并可对商品编号进行排序,对商品进行查询,修改和删除操作。
缺省列表显示商品的以下信息(编号、商品名称、货号、价格、上架、精品、新品、热销、推荐排序、库存、操作).

1.1.3 添加新商品
后台管理员可以在此处添加新的商品,并可对商品编号进行分类操作。可根据实际情况录入商品的如下信息:(
商品名称、商品分类、商品品牌、本店售价、市场售价、上传商品图片、上传商品缩略图、详细描述、
库存数量、商品关键词) 等信息.

1.1.4 商品品牌的管理
后台管理员可以在此处添加/修改/删除商品所归属的品牌信息,包括对如下信息的操作(品牌名称、品牌网址、
品牌描述、排序、是否显示、操作 ).

1.1.5 用户评论
后台管理员可以在此处查询或者删除商城用户对某一产品所发布的评论信息,并可对评论进行回复操作.包括
(评论编号、用户名、类型、评论对象、IP地址、评论时间、状态、操作)


1.2 订单信息管理
后台管理员动态管理系统中的订单信息。

1.2.1 订单列表
后台管理员可以此处对订单进行管理,可以通过如下条件查询订单信息,可组合使用.包括(订单号、收货人、订单状态).
对查询到的订单可以对其进行查看,取消,移除,打印等等操作.

1.2.2 订单查询
后台管理员可以此处通过如下条件查询订单信息,可组合使用.包括(订单号、电子邮件、购货人、收货人、地址、
手机、所在地区、支付方式、配送方式、下单时间、订单状态)等条件

1.2.3 添加订单
后台管理员可以此处手工添加订单,包括(商品名称、货号、分类、品牌、价格、属性、数量)的录入,为了方便商品
的查找,提供了依据 按商品编号或商品名称或商品货号搜索 功能.

1.2.4 发货单列表
后台管理员可以此处对发货单进行管理,包括添删改查功能.可以根据( 发货单流水号/订单号/收货人/发货单状态)
条件进行搜索过滤,,可组合使用.包括(发货单流水号、订单号、下单时间、收货人、发货时间、发货单状态、操作人、
操作).

1.2.5 退货单列表
后台管理员可以此处对退货单进行管理,包括添删改查功能.可以根据( 发货单流水号/订单号/收货人)条件进行搜索过滤,
可组合使用.包括(发货单流水号、订单号、下单时间、收货人、发货时间、退货时间、操作人、操作).


1.3 销售信息管理
后台管理员动态查询商城商品销售的数据和报表图例。

1.3.1 销售概况:
可以按年/月查询订单走势和销售额的走势图例.

1.3.2 销售明细:
可以按时间段查询商品销售的明细,包括(商品名称、订单号、数量、售价、售出日期).


1.4 产品支付/配送方式
后台管理员动态管理商城商品的配送与货币支付的方式

1.4.1 支付方式:
可以自定义本商城提供给客户购买商品时的付款方式,包括(支付宝、易付通、paypal、财付通、银行汇款/转帐等方式).

1.4.2 配送方式:
可以自定义本商城提供给客户配送商品时的送货方式,包括(上门取货、邮局平邮、圆通速递、中通速递、城际快递等方式).


2 楼 vb2005xu 2009-06-04  
整个博客预期将使用的web页面开发技术为如下东西:
Spring MVC,Spring AOP , JSTL ,JSP ,IBATIS,
HTML,CSS,JQUERY JS

可能有人会问为什么不用其他的视图层技术,我有自己的打算,可用性,低复杂性是这个项目的前提,JSP,JSTL是最简单的视图层开发技术,个人认为也是很棒的一种...

在PHP能将Smarty这种比不上JSTL的模板引擎大放光彩的时候,JSTL则是我见到的同类JAVA模板引擎最简单易用的一种..

为什么不用Struts这种东西,太笨重,前端最好是纯HTML+JS+css来构建.尽量少将视图层的解析置于服务器上,

这套东西并不是为了拼jar包而构建... 如果你是那种具有重量级思想的程序员,很抱歉,这个不太适合你..

在接下来的一段时间内,主要以一个小demo来熟悉Spring怎么整合这些技术的使用...
近期因为我接到一个私活,要使用Appfuse技术实现第三方商家平台,所以在某些方面可能跟不上预期的进度,请大家见谅..

推荐书籍: Spring程序高手秘籍
这本书超级便宜,完全是以项目为导向的...很薄...

这个小demo是里面的代码实现...

对于博客的数据库结构尚未完全构出... 商店的表,上文已有提供...
1 楼 laitaogood 2009-06-03  
我想一起学习学习,呵呵,可以发消息给我,咱们进一步聊聊

相关推荐

Global site tag (gtag.js) - Google Analytics