目前SSM框架(Spring+SpringMVC+Mybatis)依然是市场主流,如何搭建一个实用的SSM框架是很多同学都想学习的技能。但网络上的大多数教程要么不完整,要么还遗留了很多坑,即使严格按教程来也很难得到我们想要的结果。所以我就想自己写一篇搭建攻略,即使零基础的同学,按我的攻略步骤也能搭出一个实用的SSM框架。
一、SSM框架介绍
标准的mvc结构包含model(模型层),view(视图层)和controller(控制层)。该模式在一套SSM框架中对应的是:model包含数据库和dao层(数据库连接及存取技术层),controller包含controller层(资源解析映射并向视图层发送数据)和service层(业务处理),view包含所有前端(jsp、html、css、js、vm等文件)。
二、预安装程序
- Jdk 1.7
- eclipse(注意jdk版本和eclipse版本的匹配,高版本eclipse不支持低版本jdk。我用的是从官网下载的eclipse-jee-mars-R-win32-x86_64版本,只支持jdk1.7以上版本)
- tomcat(同样注意和jdk版本匹配问题。我用的是7.0.82版本)
- maven(我用的是3.2.1版本)
- 远端maven库使用阿里云的库,配置相关setting.xml文件(具体配置后面会介绍)。
- 数据库(我用的mysql 5.6.21)
萌新尽量安装和我一样版本的程序,以免出现不兼容的问题。如果没有一模一样的,保证大版本一致也行,如mysql用5.6.*的都可以。具体的安装步骤和环境变量配置请自行百度,此处不赘述。
三、搭建步骤
步骤一、新建maven项目
1、新建一个eclipse工程,该路径主要存放eclipse相关文件,并提供该项目编译、部署和运行时的环境。
2、eclipse配置
2.1 Window—Preferences—General—Workspace,设置Text file encoding为UTF-8
2.2 Window—Preferences—Java—Installed JREs,添加自己安装的jdk并勾选,注意选jdk路径下而不是jre路径下(选jre有个坑,具体原因我不太记得了)。
2.3 Window—Preferences—Maven—User Settings,导入配置好的setting.xml文件
settings.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<settings>
<!-- 本地仓库地址,新建一个空文件夹即可,jar包会从远端maven库下载到该文件夹 -->
<localRepository>F:\test_repository</localRepository>
<!-- 远端maven库配置 -->
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
</settings>
2.4 Window—Preferences—Server—Runtime Environments,添加安装好的tomcat
3、用maven创建一个web项目
3.1 File–New–Maven Project,创建Maven项目(New菜单下没有Maven Project的话就去New菜单下的Other里面找)
这里Use default Workspace location一般会默认勾选,代表将你要写的代码放到第一幅图的Workspace目录下。如果希望代码和工程分离的话,可以去勾选,自己另外指定一个目录(常用)。
Group Id是项目组织唯一的标识符,实际对应Java的包结构。Artifact Id是该项目的唯一标识符,实际对应项目名,也是项目根目录的名称。Version代表版本号。
3.2 创建成功即会生成下图中的目录(不同eclipse版本可能排版会不大一样),JRE库版本如果不是1.7则需要替换成1.7(替换方法在后面),index.jsp有个报错是因为没有导入javax.servlet-api的jar包,按步骤添加完jar包依赖后该报错就会消失。(该报错暂不影响程序运行)
如果有同学在创建项目的时候发现类似如下报错:
请先检查settings.xml文件是否写错。
如果settings文件没问题,就进到F:\test_repository\org\apache\maven路径下删除plugins文件夹,然后右键点击项目名–Maven–Update Project,勾选ForceUpdate of Snapshots/Releases,点击OK。
如果上述方法仍不可行,请进到F:\test_repository\org\apache\maven\plugins\maven-resources-plugin目录及其子文件夹中,查看是否有jar包。如果没有对应jar包或者发现有.lastUpdated文件存在,说明下载失败或者未完成下载。此时需要检查网络。如果网络没有问题,那么说明远程仓库连接异常。此时可以更换远程仓库地址,或者直接去网络下载相应jar包到本地仓库,同时将settings.xml文件中的远程仓库配置删除。(如果将settings.xml文件中远程仓库配置删除的话,那么以后所有添加的依赖都需要手动下载到本地仓库,不推荐)
如果还不能解决,恕老夫无能为力,道友请移步百度。
3.3 右键项目名–Build Path–Configure Build Path,添加JRE 1.7jar包依赖。
之前配置eclipse步骤里如果已经配置了1.7版本,此处默认就是1.7,直接确认就好。
remove掉1.5版本,点击Apply或OK确认。如此我们便将项目依赖的JRE jar包替换成了1.7版本。
3.4 Maven规定必须添加以下Source Folder:
src/main/java
src/main/resources
src/test/java
src/test/resources
如有缺失,则右键项目名–New–Source Folder,添加完整目录结构
右键项目名–Build Path–Configure Build Path,修改输出路径
右键项目名–Properties–Project Facets,修改Java为1.7版本,个别eclipse版本需要手动勾选Dynamic Web Module。
右键项目名–Properties–Deployment Assembly,删除test的两项,因为test是测试用的,不需要部署。另外个别eclispe版本没有添加最后一个Maven Dependencies发布到lib下,需手动添加Add–Java Build Path Entries–Maven Dependencies–Finish
如此一来,我们建好了一个完整的Maven web项目
3.5 在Tomcat上运行该Maven工程,以检测之前的步骤是否都完成了。
右键项目名–Run As–Maven clean,
右键项目名–Run As–Maven install,
右键项目名–Run As–Run On Server
如果Console下不报错且显示Server startup in *** ms或者有Hello World的页面(访问的index.jsp文件)出来,证明我们搭建的第一阶段顺利完成。
4、引入maven依赖jar包,包含spring,mybatis和一些常用jar包。pom.xml文件内容如下(完全覆盖原文件),如果你的groupId、artifactId和version跟我文件里不一样,则需要修改。
<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&