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;
    }
}