前言:这个项目是我的第一个实验性项目,最初的立意是制作一个个性化的BBS。由于BBS能够综合大部分功能,因此作为练手的项目来说再好不过。从写第一行代码到完成测试版大概历时2周。中间遇到了不少以前在学习中没有想到的问题,当然通过解决这些难题也更加深了对MVC模型的理解。本来打算至少完成1.0版本以后再发布出来,可惜由于新工作的原因估计短时间内很难继续完成。所以就凑合把两周中间我经历的种种记录于此。
项目后台通过Struts2+Spring+Hibernate搭建,前台使用了比较简单的Div+CSS+jQuery作为展示。
一、通过Maven管理依赖
这个过程比较复杂,虽然在网上能够查到不少现成的Maven依赖配置。但出于学习考虑,我还是手动添加并通过不断测试尽量将引入的依赖最小化。除了对基本框架的依赖以外,还有不少依赖关系是跟随项目开发进程不断引入的。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.learnhow</groupId> <artifactId>bbs2016</artifactId> <packaging>war</packaging> <version>1.0</version> <name>bbs2016 Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <!-- 添加上传依赖,自动添加io依赖 --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <!-- 添加json-lib依赖 --> <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4</version> <classifier>jdk15</classifier> </dependency> <!-- 添加tomcat --> <dependency> <groupId>tomcat</groupId> <artifactId>jasper-runtime</artifactId> <version>5.5.23</version> </dependency> <!-- 特别添加jdom,由于此依赖包并非从maven库中下载,因此事先需要在本地的maven库中添加此版本的jar包 --> <dependency> <groupId>org.jdom</groupId> <artifactId>jdom</artifactId> <version>2.0.6</version> </dependency> <!-- 添加jstl依赖 --> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> <scope>compile</scope> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> <scope>compile</scope> </dependency> <!-- 添加spring整合hibernate依赖包 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-dbcp2</artifactId> <version>2.1.1</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>4.2.2.RELEASE</version> </dependency> <!-- 添加hibernate基础依赖 --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>4.3.11.Final</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.36</version> </dependency> <!-- 添加struts整合spring依赖包 --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-spring-plugin</artifactId> <version>2.3.24</version> </dependency> <!-- 添加spring-web包的依赖,主要是为了以后开发方便 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.2.2.RELEASE</version> </dependency> <!-- 添加spring基础依赖包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.2.2.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>4.2.2.RELEASE</version> </dependency> <!-- 添加struts依赖包 --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>2.3.24</version> <!-- 这里排除掉队javassist的依赖,通过hibernate包引入 --> <exclusions> <exclusion> <groupId>javassist</groupId> <artifactId>javassist</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <!-- 添加junit依赖包 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> <build> <finalName>bbs2016</finalName> </build> </project>