日期:2014-05-16  浏览次数:20602 次

SpringFramework中的sample ---- imagedb如何跑通

对spring的接触已经挺常时间了,但是一直只是停留在会用的阶段,也感觉不出自己用的是否正确,于是决定对它提供的几个sample进行一下深入点的分析,希望以此来加深对spring这个框架的认识。
首当其冲的就是imagedb这个sample:

?

imagedb这个实例主要实现功能:

我们可以看它的readme得知

1.通过spring的LobHandler来处理Clob和Blob

2.通过spring的NativeJdbcExtractor从数据库连接池中获得本地链接

3.通过spring的MultipartResolver从http上传文件

4.使用了Velocity做为spring web MVC的显示模板



一、准备工作
1.安装jdk环境,设置JAVA_HOME环境变量,我用的jdk1.5.0_14(1.5+的都是可以的)
地址:http://java.sun.com/javase/downloads/index_jdk5.jsp
2.IDE,用的eclipse:wtp-all-in-one-sdk-R-2.0.1-20070926042742-win32.zip
以前一直用myeclipse插件,后来发现对它依赖太大于是就放弃了
地址:http://archive.eclipse.org/webtools/downloads/drops/R2.0/R-2.0.1-20070926042742/
3.springframework2.5.1:下载with-dependencies版,这个版才有依赖包
地址:http://sourceforge.net/project/showfiles.php?group_id=73357&package_id=173644&release_id=565295
4.tomcat6.0.16:
地址:http://apache.mirror.phpchina.com/tomcat/tomcat-6/v6.0.16/bin/apache-tomcat-6.0.16.zip
5.mysql5.0

地址:http://dev.mysql.com/downloads/mysql/5.0.html#downloads

使用mysql的jdbc驱动是:mysql-connector-java-5.0.8-bin.jar

地址:http://dev.mysql.com/downloads/connector/j/5.0.html
二、配置过程

?

?

首先我们配置数据库

安装mysql的过程就不说了

我们用MySQL Administrator登陆

在catalogs中新建一个imagedb的schema

并在其中建表imagedb

我们可以根据sample-->imagedb-->db中的mysql-schema.txt来建表

建表结果figure-0如下:

figure

figure-0

其中content字段设成longblob而不是blob类型,因为在mysql里blob类型的大小是有限制只有65K

如果我们上传的图片过大就会报

com.mysql.jdbc.MysqlDataTruncation:

Data truncation: Data too long for column 'content' at row 1

错误

具体限制可以参考http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html

?


打开eclipse-->新建项目-->WEB-->Dynamic Web Project
输入项目名imagedb选择完成
出现figure-1界面:
figure

figure-1

?

然后打开spring-framework-2.5.1-->sample-->imagedb

将src目录下的整个org目录copy到imagedb项目的src目录下

将war目录下的所有文件copy到imagedb项目的WebContent目录下

结果如figure-2

figure-2

figure-2

?

?

由于没有引入相应的jar包,所以有很多红叉叉

下面一步我们引入相关jar,主要有以下一些:

activation.jar,c3p0-0.9.1.2.jar,commons-collections.jar,commons-fileupload.jar,commons-io.jar,commons-lang.jar,commons-logging.jar,freemarker.jar,jta.jar,mail.jar,quartz-all-1.6.0.jar,spring-webmvc.jar,spring.jar,velocity-1.5.jar

以上这些包都可以在spring-framework-2.5.1-->lib目录下搜到

spring-webmvc.jar,spring.jar从spring-framework-2.5.1-->dist和里面的modules中找

将这些jar包复制并粘贴到eclipse项目的web-inf-->lib目录下,eclipse就会自动将这些jar加载

另外还需要加入我们的mysql驱动,mysql-connector-java-5.0.8-bin.jar

同时最好加一个log4j来做日志,我直接从lib包里找了log4j-1.2.14.jar

并在src目录下建一个叫log4j.properties的文件,内容如下(这样就可以在console中查看debug信息了)

log4j.rootLogger=debug, Console

log4j.appender.Console=org.apache.log4j.ConsoleAppender

log4j.appender.Console.layout=org.apache.log4j.PatternLayout

log4j.appender.Console.layout.ConversionPattern=%d{HH:mm:ss MM/dd} %-5p  (%c{1}:%L) : %m%n

?

结果如下figure-3:

figure-3

figure-3

最后还需要配置jdbc.properties这个文件

将你的mysql的用户和密码配上

这样就算配置完成

?

三、发布应用

?

右击imagedb项目-->Run As -->Run On Server

选apache-->Tomcat v6.0 Server点下一步

然后就可以配置Tomcat所在路径,以及你所用的JDK

figure-6

figure-4

再点下一步

发现imagedb的web项目已经在里面了点完成既可

figure-5