自己动手搭建SSM
1.工具
- apache-tomcat 7
- apache-maven(后面详细讲!这东西我一开始也很懵逼)
- mysql 5以上的版本
- navicat(有了这个就不用cmd了,可以直接显示数据库,如下图,请自行百度绿色版QAQ)
- IntelliJ IDEA 2016.3.4(http://www.jb51.net/softs/527945.html,根据连接教程慢慢安装吧~)
2.前言
前不久学完了spring和mybatis基础,于是决定来整合ssm。但是跟着学长的博客教程走的时候,出现了很多问题,于是打算转载一下他的博客,并加上我自己的理解,来写这么一篇博客。那么,请务必包含耐性,内容较多,慢慢来实现ssm的helloworld入门项目(原出处:http://blog.csdn.net/lxfhahaha/article/details/57078994)
3.步骤
1)准备工作
1.1 mysql数据库安装,此处直接引用学长的教程
http://blog.csdn.net/lxfhahaha/article/details/56847353
1.2 Tomcat安装
http://blog.csdn.net/zyf2333/article/details/77387649。
1.3 maven安装
(安装教程:https://jingyan.baidu.com/article/fd8044fadc1ac15031137a12.html)
此处我是下载到D盘,然后自己在maven目录下创建了一个repository文件夹(随便取名)
然后打开conf文件夹下的settings.xml,在大约100行左右,修改圈中的目录,此处目录写你刚刚创建的repository文件夹的目录,如上图中,我的repository目录是 D:\maven\repository,那此处就改成我的目录(没有<localRepository>
的话就自己添加就是的了)
接下来在大约150行左右,在<mirrors>
元素之间添加如下代码
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>jboss-public-repository-group</id>
<mirrorOf>central</mirrorOf>
<name>JBoss Public Repository Group</name>
<url>http://repository.jboss.org/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
最后效果如下
1.3.1 maven是干嘛的?
答:百度上也有,说是管理jar包的。通俗点就是:如果你以前有过使用eclipse的经验,就会知道,那么当我们需要引用外来jar包的时候,都会自己找jar包,然后下载并添加到项目运行环境中。而使用maven,则可以自动下载,不用我们自己去下载了。或者有时候我们用eclipse导入spring支持的包时候,也需要自己添加所需要的jar包,运用maven就可以自动添加了。
1.3.2 创建repository文件夹干嘛?
答:这个文件夹是用来存放maven自动下载的jar包的。我们第一次使用的时候,会进行下载,这样会耗一点时间,以后我们再用就直接用这个文件夹下的jar包了。
1.3.3 为什么要修改setting.xml中的<localRepository>
答:我们上面说了,maven会下载jar包并存放到自己创好的repository文件夹下。这个操作就是设置让maven把下载下来的jar包放入repository文件夹
1.3.4 为什么要修改setting.xml中的<mirror>
?
答:我们说了,maven会自动下载。那么它从哪个网站下载呢?此处就要用到这个<mirror>
了。由于maven默认的下载地址是国外的网站,可能由于墙的原因下载会超级超级慢。因此我们自动添加几个国内的网站,此处就用了阿里云。可以多添加几个网站,因为有些网站可能jar包不是很全,因此多添加几个以防万一
1.3.5 要是添加了好几个网站后也没有我想要的jar包呢?
答:要么再加几个网站,要么自己手动添加(方法后面讲)
1.4 自行安装IDEA,这里不多说了
2)创建maven项目
在创建之前,请自行在数据库中创建名为”example”的数据库,里面有个user表。如下:
点击next,填写对应的GroupId,ArtifactId(GroupId随意填,我也不太知道有什么用。ArtifactId就是你项目名)
(PS:接下来不要纠结我的项目名称,因为我是同时开一个helloworld2,然后又用到了我已经架构好了的helloworld项目)
点击next,此处就用到maven了。
然后next,最后finish,然后慢慢等。刚刚开始创建项目的时候,IDEA要花点时间来创建项目,等一下就好了(ps:有点慢的,慢慢等)
创建完了后,原生态目录应该如下(目录说明:.idea和helloworld.iml不用管,也不要删,是IDEA本身的配置文件;src就是我们写项目的地方了。pom.xml是用来配合maven的。我们要用什么jar包,写在pom.xml中,d盘中的maven就会自动从<mirror>
中下载到repository文件夹中)
接着,执行如下操作:
1. 在main的java文件夹上,鼠标右键,找到 make directory as,选择Sources root
2. 在main的resources文件夹上,鼠标右键,找到make directory as,选择Resources root
3. 在test的java文件夹上,鼠标右键,找到make directory as,选择Test Sources root
4. 在test的resources文件夹上,鼠标右键,找到make directory as,选择Test Resources root
继续修改目录结构,增加一些文件夹及文件,这些都是等一下要用的到的
1. src->main->java下新建package com,再新建package springmvc,这两个对应我们刚开始的groupid
2. springmvc包下新建四个包,controller包用来放前台url映射文件,dao用来放与数据库的接口文件,entity用来放实体类文件,service用来放自己定义的接口
3. applicationContext.xml是spring配置文件
4. sqlmap文件夹里面放实体与数据库的映射文件
5. generator.xml和generator.properties是mybatis的配置文件
6. jdbc.properties是数据库相关信息
7. log4j.properties是日志配置文件
8. webapp下新建css、images等文件,用来放前端资源
9. web-inf下新建views文件件,jsp文件就放这里面了
修改后目录如下:
(PS:此处有些人项目可能不会像我这样是“树枝状”,而是变成了”com.springmvc.controller.dao.entity.service”。即包都挤在一起去了。解决方案:如图,把划线部分勾掉就好了)
3)项目配置文件
3.1、配置pom.xml文件,引入所需要的jar包
之前说了,pom.xml是用来配合maven使用的,我们想要什么jar包,直接在pom.xml中写出来,maven就会自动帮我们下载。当你刚刚开始用maven时候,repository文件夹里面还是空的,因此要花时间来下载,请直接把接下来的代码复制黏贴。在这里,我们只需要关注<dependency>标签就好了
<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.springtest</groupId>
<artifactId>helloworld</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>helloworld Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>3.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>3.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>3.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>3.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>3.1.1.RELEASE</version>
</dependency>
<!-- springframe end -->
<!-- mybatis核心包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.1</version>
</dependency>
<!-- mybatis/spring包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.2</version>
</dependency>
<!-- mysql驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.29</version>
</dependency>
<!-- junit测试包 -->
<dependency>
<groupId>junit</