接触SSM框架到现在也有很长时间了,之前也搭建过几个简单的项目,但是没有进行过记录学习和搭建的过程。网上关于ssm框架整合的资料也不少,不过说句实话,单看某一篇文章能够不踩坑的配置并跑起来的也不太多,在学习过程中筛选甄别这些就浪费了相当一部分时间。
本文理论+实践的方式,分享ssm的相关概念以及采用实践操作的方式搭建整套系统。把搭建过程中踩过的坑、笔记记录整理一下,用以和感兴趣的朋友分享下。
该项目持续更新中,会在代码以及该文档里面详细注释和介绍。
项目托管在码云
开源平台上,链接:
https://gitee.com/nelucifer/ssm-note,点击克隆/下载
获取该项目。
打开IDEA,选择New->Projects,按照下面的步骤选择:
选择Maven,然后勾选Create from archetype,选择webapp这一个
完成之后填入相应的maven项目组信息,GroupId是项目组织的标识符,对应java的包结构;ArtifactId是项目的标识符,对应项目的名称,即项目根目录的名称。groupId和artifactId统称为“坐标”。
在main文件夹下创建文件夹java、resources,src文件夹下创建test,test文件夹下创建java文件夹;
在java文件夹上右键 -> Mark Directory as
,java文件夹选择Sources Root
,resources文件夹上选择Resources Root
,test文件夹下的java文件夹上选择Test Resources Root
,
操作如下:
完成后的项目结构如下:
详细的解释直接在代码里面注释了。开始贴代码:
pom.xml
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0modelVersion>
<groupId>com.weyounggroupId>
<artifactId>ssm-noteartifactId>
<version>1.0-SNAPSHOTversion>
<packaging>warpackaging>
<name>ssm-note Maven Webappname>
<url>http://www.example.comurl>
<description>maven+ssm项目整合笔记description>
<issueManagement>
<system>jirasystem>
<url>url>
issueManagement>
<developers>
<developer>
<id>coder_lixiaid>
<name>lixianame>
<email>[email protected]email>
<url>http://www.wanglixia.top/url>
<roles>
<role>Project Managerrole>
roles>
<organization>organization>
<organizationUrl>organizationUrl>
developer>
developers>
<properties>
<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
<maven.compiler.source>1.7maven.compiler.source>
<maven.compiler.target>1.7maven.compiler.target>
<plugin.maven-compiler>3.1plugin.maven-compiler>
<javac.target.version>1.8javac.target.version>
<spring.version>4.2.5.RELEASEspring.version>
<jstl.version>1.2jstl.version>
<commons-logging.version>1.1.1commons-logging.version>
<mybatis.version>3.3.1mybatis.version>
<mybatis-spring.version>1.2.4mybatis-spring.version>
<mysql-connector-java.version>5.1.26mysql-connector-java.version>
<log4j.version>1.2.14log4j.version>
<slf4j.log4j12.version>1.7.12slf4j.log4j12.version>
<servlet-api.version>2.5servlet-api.version>
<commons-io.version>2.4commons-io.version>
<commons-fileupload.version>1.3commons-fileupload.version>
<gson.version>2.2.2gson.version>
<druid.version>1.0.25druid.version>
<cxf.version>3.1.6cxf.version>
<fastjson.version>1.2.32fastjson.version>
<pagehelper.version>5.1.2pagehelper.version>
<jackson.version>2.7.4jackson.version>
properties>
<repositories>
<repository>
<id>publicid>
<name>aliyun nexusname>
<url>http://maven.aliyun.com/nexus/content/groups/public/url>
<releases>
<enabled>trueenabled>
<updatePolicy>neverupdatePolicy>
<checksumPolicy>ignorechecksumPolicy>
releases>
<snapshots>
<enabled>falseenabled>
<updatePolicy>neverupdatePolicy>
<checksumPolicy>ignorechecksumPolicy>
snapshots>
<layout>defaultlayout>
repository>
repositories>
<pluginRepositories>
<pluginRepository>
<id>publicid>
<name>aliyun nexusname>
<url>http://maven.aliyun.com/nexus/content/groups/public/url>
<releases>
<enabled>trueenabled>
releases>
<snapshots>
<enabled>falseenabled>
snapshots>
pluginRepository>
pluginRepositories>
<dependencies>
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>4.12version>
<type>jartype>
<scope>testscope>
<optional>trueoptional>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-aopartifactId>
<version>${spring.version}version>
<type>jartype>
<scope>compilescope>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-aspectsartifactId>
<version>${spring.version}version>
<type>jartype>
<scope>compilescope>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-beansartifactId>
<version>${spring.version}version>
<type>jartype>
<scope>compilescope>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-contextartifactId>
<version>${spring.version}version>
<type>jartype>
<scope>compilescope>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-context-supportartifactId>
<version>${spring.version}version>
<type>jartype>
<scope>compilescope>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-coreartifactId>
<version>${spring.version}version>
<exclusions>
<exclusion>
<groupId>commons-logginggroupId>
<artifactId>commons-loggingartifactId>
exclusion>
exclusions>
<type>jartype>
<scope>compilescope>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-expressionartifactId>
<version>${spring.version}version>
<type>jartype>
<scope>compilescope>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-jdbcartifactId>
<version>${spring.version}version>
<type>jartype>
<scope>compilescope>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-txartifactId>
<version>${spring.version}version>
<type>jartype>
<scope>compilescope>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-jmsartifactId>
<version>${spring.version}version>
<type>jartype>
<scope>compilescope>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-ormartifactId>
<version>${spring.version}version>
<type>jartype>
<scope>compilescope>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-oxmartifactId>
<version>${spring.version}version>
<type>jartype>
<scope>compilescope>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-webartifactId>
<version>${spring.version}version>
<type>jartype>
<scope>compilescope>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-webmvcartifactId>
<version>${spring.version}version>
<type>jartype>
<scope>compilescope>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-testartifactId>
<version>${spring.version}version>
<type>jartype>
<scope>compilescope>
dependency>
<dependency>
<groupId>commons-logginggroupId>
<artifactId>commons-loggingartifactId>
<version>${commons-logging.version}version>
dependency>
<dependency>
<groupId>org.mybatisgroupId>
<artifactId>mybatisartifactId>
<version>${mybatis.version}version>
dependency>
<dependency>
<groupId>org.mybatisgroupId>
<artifactId>mybatis-springartifactId>
<version>${mybatis-spring.version}version>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<version>${mysql-connector-java.version}version>
dependency>
<dependency>
<groupId>com.alibabagroupId>
<artifactId>druidartifactId>
<version>${druid.version}version>
dependency>
<dependency>
<groupId>log4jgroupId>
<artifactId>log4jartifactId>
<version>${log4j.version}version>
dependency>
<dependency>
<groupId>org.slf4jgroupId>
<artifactId>slf4j-log4j12artifactId>
<version>${slf4j.log4j12.version}version>
dependency>
<dependency>
<groupId>javax.servletgroupId>
<artifactId>servlet-apiartifactId>
<version>${servlet-api.version}version>
dependency>
<dependency>
<groupId>javax.servletgroupId>
<artifactId>jstlartifactId>
<version>${jstl.version}version>
dependency>
<dependency>
<groupId>commons-iogroupId>
<artifactId>commons-ioartifactId>
<version>${commons-io.version}version>
dependency>
<dependency>
<groupId>commons-fileuploadgroupId>
<artifactId>commons-fileuploadartifactId>
<version>${commons-fileupload.version}version>
dependency>
<dependency>
<groupId>com.google.code.gsongroupId>
<artifactId>gsonartifactId>
<version>${gson.version}version>
dependency>
<dependency>
<groupId>com.fasterxml.jackson.coregroupId>
<artifactId>jackson-coreartifactId>
<version>${jackson.version}version>
dependency>
<dependency>
<groupId>com.fasterxml.jackson.coregroupId>
<artifactId>jackson-databindartifactId>
<version>${jackson.version}version>
dependency>
<dependency>
<groupId>com.fasterxml.jackson.coregroupId>
<artifactId>jackson-annotationsartifactId>
<version>${jackson.version}version>
dependency>
<dependency>
<groupId>com.alibabagroupId>
<artifactId>fastjsonartifactId>
<version>${fastjson.version}version>
dependency>
<dependency>
<groupId>com.github.pagehelpergroupId>
<artifactId>pagehelperartifactId>
<version>${pagehelper.version}version>
dependency>
<dependency>
<groupId>org.apache.cxfgroupId>
<artifactId>cxf-rt-frontend-jaxwsartifactId>
<version>${cxf.version}version>
dependency>
<dependency>
<groupId>org.apache.cxfgroupId>
<artifactId>cxf-coreartifactId>