SSM框架搭建流程
目录
- 1.SpringMVC项目搭建流程
- 2.检查一下idea插件
- 3.创建项目需要使用的文件夹目录
- 4.检查WebApp目录是否正确
- 5.检查Webapp目录
- 6.引入所有相关SSM框架的依赖包(最完全版本)
- 7.创建Spring以及SpringMVC配置文件
- 8.修改Web.xml文件中的相关配置
- 1.在resource目录创建Mybatis配置文件(名字叫mybatisConfig.xml)
- 2.修改web.xml-加载mybatis配置文件以及项目名称
- 3.修改web.xml-SpringMVC前端控制器配置
- 4.修改web.xml-添加Spring字符编码过滤器
- 5.修改web.xml- 添加SpringMVC-REST请求规范过滤器
- 9.配置SpringMVC相关内容
- 1.各自小组创建自己的业务相关包,一定要在根目录下创建
- 2.配置SpringMVC配置文件(dispatcher-servlet.xml)
- (1)配置视图解析器
- (2)配置自动包扫描加入ioc容器
- (3)文件上传下载解析器
- (4)静态资源引入
- 10.Mybatis集成Spring、SpringMVC的配置
- 1.引入依赖(注意不要重复引入,之前的demo中已经帮大家引入了)
- 2.编写Mybatis配置文件
- (1)创建一个外部配置mybatis数据源以及连接属性的配置文件(db.properties)
- (2)在mybatis配置文件中引入properties的配置
- (3)mybatis配置文件配置数据源(基于阿里巴巴druid连接池的配置)
- (4)配置创建SQLSessionFactory工厂类
- (5)配置sqlSession创建规则
- (6)配置mybatis分页
- (7)配置@Mapper注解的自动扫描
- 11.SSM完整调用demo案例:
- (1)编写数据库与java映射实体对象
- (2)编写mybatis映射接口(注意:一定要加@Mapper注解在类上)
- (3)编写接口同名对应的xml映射文件(注意:要在同一个包且名字完全相同)
- (4)编写controller层
- (5)编写业务层接口
- (6)编写业务层实现-调用mybatis接口实例
1.SpringMVC项目搭建流程
2.检查一下idea插件
Spring以及SpringMVC相关插件
lombok插件
MyBatis插件
3.创建项目需要使用的文件夹目录
4.检查WebApp目录是否正确
5.检查Webapp目录
6.引入所有相关SSM框架的依赖包(最完全版本)
org.springframework
spring-web
5.2.3.RELEASE
org.springframework
spring-webmvc
5.2.3.RELEASE
org.springframework
spring-context
5.2.3.RELEASE
org.springframework
spring-test
5.2.3.RELEASE
org.springframework
spring-jdbc
5.2.3.RELEASE
org.aspectj
aspectjweaver
1.8.9
junit
junit
4.11
test
org.slf4j
slf4j-log4j12
1.7.21
javax.servlet
javax.servlet-api
3.1.0
javax.servlet.jsp
jsp-api
2.2
javax.servlet
jstl
1.2
mysql
mysql-connector-java
8.0.22
com.alibaba
fastjson
1.2.78
org.apache.commons
commons-lang3
3.4
commons-io
commons-io
2.4
commons-fileupload
commons-fileupload
1.3.1
org.projectlombok
lombok
1.18.22
provided
javax.validation
validation-api
1.1.0.Final
org.jboss.logging
jboss-logging
3.1.0.CR2
org.hibernate
hibernate-validator
5.1.0.Final
com.fasterxml.jackson.core
jackson-core
2.12.3
com.fasterxml.jackson.core
jackson-databind
2.12.3
com.fasterxml.jackson.core
jackson-annotations
2.12.3
com.fasterxml
classmate
1.5.1
org.mybatis
mybatis
3.5.7
org.mybatis
mybatis-spring
1.3.0
com.alibaba
druid
1.2.8
compile
log4j
log4j
1.2.17
commons-logging
commons-logging
1.2
io.springfox
springfox-swagger2
2.6.1
io.springfox
springfox-swagger-ui
2.6.1
com.github.pagehelper
pagehelper
4.2.1
7.创建Spring以及SpringMVC配置文件
把生成的两个配置文件拖拽到resource目录下
8.修改Web.xml文件中的相关配置
1.在resource目录创建Mybatis配置文件(名字叫mybatisConfig.xml)
先编写根标签即可,留着后面写
<?xml version="1.0" encoding="UTF-8"?>
2.修改web.xml-加载mybatis配置文件以及项目名称
CZ_SSM1
contextConfigLocation
classpath:mybatisConfig.xml
3.修改web.xml-SpringMVC前端控制器配置
dispatcher
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:dispatcher-servlet.xml
1
dispatcher
/
4.修改web.xml-添加Spring字符编码过滤器
characterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
characterEncodingFilter
/*
5.修改web.xml- 添加SpringMVC-REST请求规范过滤器
HiddenHttpMethodFilter
org.springframework.web.filter.HiddenHttpMethodFilter
HiddenHttpMethodFilter
/*
6.修改web.xml-添加阿里druid连接池数据监控中心url路径映射
DruidStatView
com.alibaba.druid.support.http.StatViewServlet
DruidStatView
/druid/*
9.配置SpringMVC相关内容
1.各自小组创建自己的业务相关包,一定要在根目录下创建
附录:控制器层、业务接口层、业务实现层代码demo
/*控制器层*/
package com.czdsj.base.controller;
import com.czdsj.base.service.BaseService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import javax.annotation.Resource;
/**
* 学生基础信息采集模块-控制器层
* 2022/6/1
*/
@Controller
@RequestMapping("/base")
@Slf4j //日志注解 自动生成一个log对象
public class BaseController {
/**
* 自动注入接口实现层, name是实现层类型首字母小写即可
*/
@Resource(name = "baseServiceImpl")
private BaseService baseService;
/**
* 页面跳转方法:返回值是String类型返回一个逻辑视图名
* 页面跳转方法不需要写@ResponseBody注解 ,请求类型是GET类型
* @return
*/
@RequestMapping(value = "/toLogin",method = RequestMethod.GET)
public String toLogin(){
log.info("页面跳转-到登录页面");
return "逻辑视图名";
}
}
/*业务接口层*/
package com.czdsj.base.service;
/**
* 学生基础信息采集-业务接口层
* 2022/6/1
*/
public interface BaseService {
}
/*业务接口实现层*/
package com.czdsj.base.service.impl;
import com.czdsj.base.service.BaseService;
import org.springframework.stereotype.Service;
/**
* 学生基础信息采集-业务实现层
* 2022/6/1
*/
@Service
public class BaseServiceImpl implements BaseService {
}
2.配置SpringMVC配置文件(dispatcher-servlet.xml)
完整引入内容案例参考:
<?xml version="1.0" encoding="UTF-8"?>
(1)配置视图解析器
配置视图文件夹
配置视图解析器
(2)配置自动包扫描加入ioc容器
(3)文件上传下载解析器
(4)静态资源引入
1.创建一个静态资源文件夹
一定要创建在webapp目录下,与WEB-INF目录同级
2.在配置文件中配置静态资源路径
3.配置maven打包静态资源
在pom.xml文件中 标签下
src/main/resources
**/*.properties
**/*.xml
**/*.js
**/*.css
**/*.html
false
src/main/java
**/*.properties
**/*.xml
**/*.js
**/*.css
**/*.html
false
10.Mybatis集成Spring、SpringMVC的配置
1.引入依赖(注意不要重复引入,之前的demo中已经帮大家引入了)
org.mybatis
mybatis-spring
1.3.0
2.编写Mybatis配置文件
(1)创建一个外部配置mybatis数据源以及连接属性的配置文件(db.properties)
创建在resource目录下
#mybatis数据源以及连接池相关属性配置文件
#mysql驱动
driver=com.mysql.cj.jdbc.Driver
#mysql的jdbc连接地址
url=jdbc:mysql://localhost:3306/huawei?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8
#mysql数据库的用户名
userName=root
#mysql数据库的密码
pwd=root123456
#连接池初始化连接数量
initialSize=10
#同一时间点允许活跃的最大连接数
maxActive=30
#最小连接池数量(当没有连接时自动创建新连接的数量)
minIdle=1
#每个连接请求的最长时间(单位毫秒)
maxWait=60000
(2)在mybatis配置文件中引入properties的配置
(3)mybatis配置文件配置数据源(基于阿里巴巴druid连接池的配置)
(4)配置创建SQLSessionFactory工厂类
(5)配置sqlSession创建规则
(6)配置mybatis分页
1.引入pagehelper分页工具(注意不要重复导入依赖,之前案例中已经导入)
com.github.pagehelper
pagehelper
4.2.1
2.在mybatis配置文件中配置分页拦截器
mysql
true
true
count=countSql
3.在SQLSessionFactory配置中添加分页工具配置
(7)配置@Mapper注解的自动扫描
作用:在业务层中要使用mybatis的mapper接口实例时可以从ioc容器中自动注入调用
在mybatis配置文件中配置
11.SSM完整调用demo案例:
(1)编写数据库与java映射实体对象
package com.czdsj.base.mybatis.domain;
import lombok.Data;
/**
* 数据库Student表与JAVA映射的实体类
* 2022/6/1
*/
@Data
public class StudentDo {
private String code;
private String userName;
private Integer age;
}
(2)编写mybatis映射接口(注意:一定要加@Mapper注解在类上)
package com.czdsj.base.mybatis.dao;
import com.czdsj.base.mybatis.domain.StudentDo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* Mybatis接口层
* 2022/6/1
*/
@Mapper
public interface BaseMapper {
/**
* 查询出所有的学生信息-接口方法
* @return
*/
List getStudentList();
}
(3)编写接口同名对应的xml映射文件(注意:要在同一个包且名字完全相同)
<?xml version="1.0" encoding="UTF-8"?>
(4)编写controller层
package com.czdsj.base.controller;
import com.czdsj.base.mybatis.domain.StudentDo;
import com.czdsj.base.service.BaseService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import java.util.List;
/**
* 学生基础信息采集模块-控制器层
* 2022/6/1
*/
@Controller
@RequestMapping("/base")
@Slf4j //日志注解 自动生成一个log对象
public class BaseController {
/**
* 自动注入接口实现层, name是实现层类型首字母小写即可
*/
@Resource(name = "baseServiceImpl")
private BaseService baseService;
/**
* 页面跳转方法:返回值是String类型返回一个逻辑视图名
* 页面跳转方法不需要写@ResponseBody注解 ,请求类型是GET类型
* @return
*/
@RequestMapping(value = "/toLogin",method = RequestMethod.GET)
public String toLogin(){
log.info("页面跳转-到登录页面");
return "index";
}
/**
* 查询学生的所有数据-返回json
* @return
*/
@RequestMapping(value = "/getStudentList",method = RequestMethod.GET)
@ResponseBody
public Object getStudentListData(){
log.info("查询学生的所有数据");
//控制器层调用-业务接口
List studentList = baseService.getStudentList();
return studentList;
}
}
(5)编写业务层接口
package com.czdsj.base.service;
import com.czdsj.base.mybatis.domain.StudentDo;
import java.util.List;
/**
* 学生基础信息采集-业务接口层
* 2022/6/1
*/
public interface BaseService {
/**
* 获取学生的所有数据
* @return
*/
List getStudentList();
}
(6)编写业务层实现-调用mybatis接口实例
package com.czdsj.base.service.impl;
import com.czdsj.base.mybatis.dao.BaseMapper;
import com.czdsj.base.mybatis.domain.StudentDo;
import com.czdsj.base.service.BaseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 学生基础信息采集-业务实现层
* 2022/6/1
*/
@Service
public class BaseServiceImpl implements BaseService {
/**
* 通过容器自动注入mybatis接口的实现
*/
@Autowired
private BaseMapper baseMapper;
/**
* 获取学生的所有数据 业务接口层调用实现层方法
* @return
*/
@Override
public List getStudentList() {
//实现层方法-调用mybatis接口
List studentList = baseMapper.getStudentList();
return studentList;
}
}