前言
SSM框架集是指Spring、SpringMVC、MyBatis三大开源框架整合而成Java后台框架。相对于已经成熟的框架SSH(Sturts2+Spring+Hibernate),个人更愿意学习SSM,因为目前越来越受到公司的欢迎。
感谢
在这里,我要特别感谢带我入坑Java Web的dalao,也是他无私的分享精神,让我坚持开源技术知识给大家!CSDN博客作者:小啊小木头。
准备工具:
- IDEA
- Tomcat
- MySQL
教程
-1- 准备工作
确认安装了JDK、IDEA(下载专业版)、MySQL(本地可不安装,可使用云服务器的数据库)。安装不是本教程重点,自行解决。
-2- 创建项目
打开IDEA,创建一个新项目。项目基于Maven的Java Web。Maven是一种非常好用便捷的包管理工具,感兴趣自己可以查查资料。
填写项目信息
- GroupId:组织名,一般是域名反写,也常做项目包名目录
-
ArtifactId:项目名,一般做为工程名,也是根文件夹名
选择Maven版本
IDEA有自带版本。如果熟悉maven,电脑且安装了Maven也可以用自己的。右边选择自己Maven的目录
点击Finish保存项目
初始化加载
第一次使用IDEA,项目创建需要下载并初始化各种各样的东西,需要占用大量的时间。加载完成的标志是会发现有一个
src
目录
关于里面各个文件以及文件夹,大家可以看我这篇笔记: 【后台学习笔记】基于Maven的Web项目目录结构与作用介绍(IDEA)
-2- 完善项目结构
main目录下创建:
- java文件夹:用于存放后台代码
-
resources文件夹:用于存放后台配置文件
针对以上两个目录,还要标记文件夹,图片以resources文件夹为例。标记resources为资源根目录(Resources Root)。同样还需要标记java文件夹为Sources Root
在java目录下,我们先创建几个包。根据自己的项目逻辑结构。最主要是后面的四个包,采用SSM框架,分层的结构思想:
- controller:控制层。Controller层负责具体的业务模块流程的控制,在此层里面要调用Serice层的接口来控制业务流程,控制的配置也同样是在Spring的配置文件里面进行,针对具体的业务流程,会有不同的控制器,我们具体的设计过程中可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块,这样不仅使程序结构变得清晰,也大大减少了代码量。
- dao: 持久层。DAO层主要是做数据持久层的工作,主要与数据库进行交互。DAO层首先会创建DAO接口,然后会在配置文件中定义该接口的实现类,接着就可以在模块中就可以调用DAO 的接口进行数据业务的而处理,并且不用关注此接口的具体实现类是哪一个类。DAO 层的数据源和数据库连接的参数数都是在配置文件中进行配置的。
- entity:实体层。也就是我们存放实体类的包。
- service:业务层。Service层主要负责业务模块的逻辑应用设计。是持久层的实现类。封装Service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性,程序显得非常简洁。
接下来是前端部分:
webapp目录下创建: - css:存放前端css文件
- js:存放前端JavaScript文件
- images:存放前端图片
- fonts:存放前端的字体文件
在WEB-INF目录下创建: - views:存放前端网页(JSP文件)
同时在view的文件夹下创建: -
index.jsp:这里我们把所有的网页文件放在views文件目录下需要删除webapp文件夹下的index.jsp,这里我们不需要用它。
最后的目录结构是:
-3- 添加框架所需要的jar包
导入的包大致包括:Spring以及SpringMVC核心包、log4j日志包、mysql驱动包、MyBatis核心包。日后需要做其他的功能,例如分页、文件上传等。大家就可以按需添加一些外部包来实现快速开发了~
pom.xml
4.0.0
hellomiao.cn
SSMDemo
1.0-SNAPSHOT
war
SSMDemo Maven Webapp
http://www.example.com
UTF-8
1.7
1.7
4.2.5.RELEASE
3.2.4
1.6.6
1.2.12
org.springframework
spring-core
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-oxm
${spring.version}
org.springframework
spring-tx
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-aop
${spring.version}
org.springframework
spring-context-support
${spring.version}
org.springframework
spring-test
${spring.version}
org.springframework
spring-websocket
4.3.3.RELEASE
org.springframework
spring-messaging
4.3.3.RELEASE
org.mybatis
mybatis
${mybatis.version}
org.mybatis
mybatis-spring
1.2.2
mysql
mysql-connector-java
5.1.29
commons-lang
commons-lang
2.4
commons-logging
commons-logging
1.1
commons-pool
commons-pool
1.5.6
commons-dbcp
commons-dbcp
1.4
commons-beanutils
commons-beanutils
1.8.3
commons-httpclient
commons-httpclient
3.1
commons-collections
commons-collections
3.1
commons-codec
commons-codec
1.9
javax.annotation
jsr250-api
1.0
net.sf.ezmorph
ezmorph
1.0.6
javax.activation
activation
1.1
taglibs
standard
1.1.2
log4j
log4j
${log4j.version}
org.slf4j
slf4j-api
${slf4j.version}
org.slf4j
slf4j-log4j12
${slf4j.version}
com.fasterxml.jackson.core
jackson-core
2.7.1
com.fasterxml.jackson.core
jackson-annotations
2.7.1
com.fasterxml.jackson.core
jackson-databind
2.7.1
net.sf.json-lib
json-lib
2.4
jdk15
SSMDemo
org.mybatis.generator
mybatis-generator-maven-plugin
1.3.2
true
true
-3- 添加数据库配置文件
在resources文件下新建一个文件:jdbc.properties
jdbc.properties
driver=com.mysql.jdbc.Driver
# 数据库地址
# 本机IP用localhost,云服务器改为对应的公网IP
# url=jdbc:mysql://IP地址:端口号/数据库名?useUnicode=true&characterEncoding=utf-8
url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf-8
#数据库用户名
username=root
#数据库的密码
password=*********************************
#定义初始连接数
initialSize=0
#定义最大连接数
maxActive=20
#定义最大空闲
maxIdle=20
#定义最小空闲
minIdle=1
#定义最长等待时间
maxWait=60000
-4- 添加日志配置文件
在resources目录下创建文件:log4j.properties
这里我们把日志文件存放在tomcat目录下的logs文件夹内
log4j.properties
### set log levels ###
log4j.rootLogger = INFO,D
###输出到控制台###
log4j.logger.toConsole=debug,stdout
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern =%d{yyyy-MM-dd HH\:mm\:ss} [%5p] - %c -%F(%L) -%m%n
### 输出到日志文件 ###
## 其中File 可以采用绝对路径 亦可以采用相对路径 catalina.home 是tomcat目录 如果没有logs文件夹 将会报错
## 更加倾向于将日志文件放在 tomcat的日志目录下${catalina.home}/logs/xxx.log
## 绝对路径如:e:/xxx.log
log4j.logger.daily=INFO,D
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = ${catalina.home}/logs/demo.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = INFO
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern =%d{yyyy-MM-dd HH\:mm\:ss} [%5p] - %c -%F(%L) -%m%n
-5-添加Spring配置文件
在resources目录下新建spring文件夹,新建一个springConfig.xml文件
springConfig.xml
application/json;charset=UTF-8
classpath:jdbc.properties
-6-web.xml配置
通过这一步,前后端就建立起沟通的桥梁了
web.xml
helloworld
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
encodingFilter
/*
springServlet
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring/springConfig.xml
1
springServlet
/
org.springframework.web.context.ContextLoaderListener
default
*.md
contextConfigLocation
classpath:spring/springConfig.xml
/WEB-INF/views/index.jsp
600
-7-配置运行环境
右上角编辑
选择tomcat服务器(需要专业版的支持)
选择需要运行war包,测试就选择第二个
选择运行的浏览器
第一次使用需要配置tomcat安装目录,选择configure找到自己的tomcat安装目录即可
-7-运行
对index.jsp做点小修改,可以看到直观的效果。
index.jsp
<%--
Created by IntelliJ IDEA.
User: liwenban
Date: 2018/4/30
Time: 12:07
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
SSMDemo
这是我的第一个基于SSM框架的javaWeb项目
是不是很熟悉,其实就是HTML啦。有做好的HTML代码,其实可以直接把html代码粘贴到对应的部分。
点击绿色运行按钮运行
控制台:
- 看到红色的别慌,没有显示[严重]都别怕。有问题就去前面配置的日志文件查看什么错误。一定要学会自己找错误去解决!
最后的运行结果:
结束
这个是SSM框架的搭建,所以还没有涉及到后台是如何交互的。主要是跑通,后面的干货快来了~