给萌新的SSM入门说明书

使用 Spring + Spring MVC +MyBatis 搭建一个服务端

想直接看项目源码的,请移步https://gitee.com/spencercjh/shouers

第一次在微信公众号给大家写技术文章,就写最傻瓜最萌新的SSM使用教程吧。

这里只有使用方法,你可以直接复制黏贴地开始搭建自己的SSM环境,具体的实现理论我不再赘述,自己看书研究吧。但我会介绍每个文件是干什么的。

环境准备(我自己的环境)

Intelij IDEA 2018.1.1 (IDE)Java8 1.8.0_152 (JDK)Apache Maven 3.5.0 (Maven)MySQL 5.7.17 (DataBase)Tomcat 8.5 (Local Sever)

开始

1 Create New Project

单击Next。

Type里你可以选择是Maven Project还是Gradle Projcet,Maven和Gradle简单说都是管理dependency(没有这些东西我们需要下载jar包并导入)。

Language选择Java。(但你也可以了解了解Kotlin呢【安利】)

Packaging选择War包,本人才疏学浅还只会部署war包到服务器上,还并不了解jar包怎么使用。

Java Version选择8。

Version一般不改。

Name可以改成Artifact名

单击Next。

Description可以简单写写,我从来没试过在这里写中文,我建议你也别尝试

Package 就是包名,会根据Group+Artifact自动生成,你当然可以自己改,所以我所有的建议都是针对萌新,当你不知道会发生什么事情的时候,就要谨慎行事。

接下来选择Dependencies,制作一个我们是给网站/App/小程序/公众号做服务端,你要根据需要去勾选:我的项目非常简单,所以只勾了:Web、MySQL,JDBC,MyBatis。你仔细看上面会发现还要选择Spring Boot的版本,这个不用管它,我们不用Spring Boot,我们会在后面的Maven Pom文件中把项目改回我们要的样子,对熟悉自己在做什么事情的人来说,怎么创建SSM项目都行。(在New Project中选择Spring而不选择Spring Initializr,或者只创建Maven/Gradle项目自己手动添加Spring有关的配置,或者自己手写一个Spring框架【笑】)

单击Next。

Project Name,我建议你用Artifact名,到现在你应该一直都是小写它的。

Project Location,项目的物理位置。我建议你不要在C盘的User目录下,或者program files目录里放工程项目。(经常会因为C盘的写入权限或者文件系统让你头皮发麻的)

别的都不用你操心了。

单击Finish。

2 开始复制黏贴我的代码吧

我会介绍每个文件是干嘛的。

2.1 pom.xml

你会发现你刚刚的设置其实都体现在pom.xml里了,你可以在这里修改以颠覆刚刚的设置,改完了以后要import changes。

2.2 webapp/*(eclipse里默认叫这个名,idea都不会默认创建)

在src中New->Directory,取名webapp。

打开Project Structure,在左边Modules中看有没有Web,没有就添加。

在Web Resources Directories中添加webapp这个路径。

在webapp中添加文件夹(根据你的开发习惯),我添加了resources,static,WEB-INF;在static中再添加css,js,images;在WEB-INF中添加jsp,和web.xml

2.2.1 webapp/WEB-INF/web.xml

做过JSP+Servlet+JavaBean等其他Java Web的人都知道这个web.xml是干嘛的。

你会发现这里面有些代码指向的类,文件,目录都不存在,但我想告诉你做服务端的时候Error并不会影响什么(除非不让你run了)

2.3 src/resouces/*

你可以把里面原来的东西全部删掉。

2.3.1 eneratorConfig.xml

SSM中dao,model,mapping都是靠这个生成出来的,具体怎么操作去生成后面会介绍。

2.3.2 jdbc.properties

这个文件是给mybatis的配置文件看的

2.3.3 log4j.properties

这个文件是维护日志的,对大规模的服务端来说,日志是很重要的。

2.3.4 spring-mvc.xml

这是Spring MVC的配置文件,你需要修改里面的包名,我建议你用ctrl-F,ctrl-R来做这些事情。

2.3.5 spring-mybatis.xml

mybatis就是在这里被配置的,和刚刚一样你需要修改包名,我再次建议你认真仔细地改,否则后面会出各种你看不懂的错误。

2.4 java

你应该知道SSM有以下文件结构:controller,dao,model,mapping,model,service,serviceimpl,一般的工程还会有util(工具包),common等等。建好文件目录后你还要把默认存在的Spring Boot的启动类删掉

2.4.1 使用mybatis-generator:generate

在IDEA中你不new一种运行项目的方式的话默认是不能运行的。

在这之前你应该先建好数据库了!

添加Maven运行方式。

Name随便取。

Command line里填写如下指令mybatis-generator:generate -e

具体怎么生成,都写在generatorConfig.xml中了。

运行。

你会发现dao、mapping、model中有东西了。

如果数据库被修改了,这些文件应该都会跟着变动,这个时候你要先把它们都删了,再生成一次,而不是直接运行生成插件!

2.4.2 编写service和serviceimpl

这里就举一个完整的例子:(这个例子中我已经扩充过一些SQL操作,并不是刚生成后的)

2.4.2.1 UserMapper .java

2.4.2.2 UserMapper.xml

2.4.2.3 User.java

2.4.2.4 UserKey.java

2.4.2.5 UserService.java

2.4.2.6 UserServiceImpl.java

2.4.2.7 user表

2.4.3 编写controller

controller里会负责网页的路由和接收请求接口,这里也举一个例子:(据说这里面也有争议,有些人不喜欢把大量的业务逻辑写在这里)

2.4.3.1 LoginController.java

3 尝试运行

3.1 准备一个index.jsp

按照我的配置,被路由的网页jsp都放在webapp/WEB-INF/jsp中

3.2 写一个默认路由

3.2.1 HomeController.java

3.3 添加运行方法

Run/Debug Configuration中添加Tomcat。

Name随便取。

Application Sever配置一下。

Deployment中把项目添加进来,应该是demo:war。Application context默认是“/”,也就是访问localhost:8080/就能进入,但在eclipse中默认是localhost:8080/demo。我也没研究过怎么在eclipse中改动这个。

单击OK。

Run。

3.4 可能出现的问题

我简单列举几个。

3.4.1 服务器并没有在跑项目,而是空跑

你一定要看到这句话,否则你的服务器运行配置就没有配置好。

3.4.2 mapping,sql等字样的错误信息

你的mapping文件系统被没有找到,观察target/classes/包名/中是否有mapping文件夹和对应的xml文件,我在pom中已经加入相关插件解决了IDEA不会在编译过程中自动把mapping文件放入taget的问题。

3.4.3 not mapping found for HTTP…………

路由写好,写对了吗?

4 总结

按照我这样配置一般不会出什么岔子的。希望你能在使用SSM的过程中理解Spring IOC容器的DI(依赖注入),Spring MVC的MVC架构,MyBatis的实现过程与原理以及和Hibernate的区别。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180803G0SILX00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券