Spring+SpringMVC+Mybatis+Vue+Axios+Thymeleaf整合案例


1.创建SSM-Parent父项目

修改配置文件

<?xml version="1.0" encoding="UTF-8"?>

    4.0.0

    com.qbb
    ssm-parent
    1.0-SNAPSHOT
    pom


    
    
        8
        8
        4.0.1
        2.3.3
        3.0.12.RELEASE
        5.3.9
        1.18.20
        1.7.30
        1.2.5
        7.0.1.Final
        1.4
        2.0.6
        1.2.6
        3.5.7
        5.1.48
        5.2.1
        4.13.2
    

    
    
        

            
            
                junit
                junit
                ${junit.version}
                test
            

            
            
                org.springframework
                spring-context
                ${spring.version}
            

            
            
                org.springframework
                spring-core
                ${spring.version}
            

            
            
                org.springframework
                spring-expression
                ${spring.version}
            

            
            
                org.springframework
                spring-beans
                ${spring.version}
            

            
            
                org.springframework
                spring-jcl
                ${spring.version}
            

            
            
                org.springframework
                spring-aop
                ${spring.version}
            

            
            
                org.springframework
                spring-aspects
                ${spring.version}
            

            
            
                org.springframework
                spring-tx
                ${spring.version}
            

            
            
                org.springframework
                spring-jdbc
                ${spring.version}
            

            
            
                org.springframework
                spring-test
                ${spring.version}
            

            
            
                org.springframework
                spring-webmvc
                ${spring.version}
            

            
            
                org.springframework
                spring-web
                ${spring.version}
            

            
            
                commons-fileupload
                commons-fileupload
                ${fileupload.version}
            

            
            
                org.hibernate.validator
                hibernate-validator
                ${hibernate-validator.version}
            

            
            
                javax.servlet
                javax.servlet-api
                ${servlet.version}
            
            
                javax.servlet.jsp
                javax.servlet.jsp-api
                ${jsp.version}
            
            
                org.thymeleaf
                thymeleaf-spring5
                ${thymeleaf.version}
            


            
            
                org.mybatis
                mybatis-spring
                ${mybatis-spring.version}
            

            
            
                org.mybatis
                mybatis
                ${mybatis.version}
            

            
            
                com.alibaba
                druid
                ${druid.version}
            

            
            
                mysql
                mysql-connector-java
                ${mysql.version}
            

            
            
                com.github.pagehelper
                pagehelper
                ${pagehelper.version}
            

            
            
                org.projectlombok
                lombok
                ${lombok.version}
            

            
            
                org.slf4j
                slf4j-api
                ${slf4j.version}
            
            
                ch.qos.logback
                logback-classic
                ${logback.version}
            
        
    

2.创建SSM-entity模块

<?xml version="1.0" encoding="UTF-8"?>

    
        ssm-parent
        com.qbb
        1.0-SNAPSHOT
    
    4.0.0

    com.qbb
    ssm-entity

    
        
        
            org.projectlombok
            lombok
        
    


创建数据库

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `username` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户名',
  `password` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '密码',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户表' ROW_FORMAT = Compact;

-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, 'zs', '123');

SET FOREIGN_KEY_CHECKS = 1;

创建实体类User

package com.qbb.ssm.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author QiuQiu&LL (博客:https://www.cnblogs.com/qbbit)
 * @version 1.0
 * @date 2022-03-04  17:09
 * @Description:
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private Integer id;
    private String username;
    private String password;
}

3.创建ssm-mapper模块

<?xml version="1.0" encoding="UTF-8"?>

    
        ssm-parent
        com.qbb
        1.0-SNAPSHOT
    
    4.0.0

    com.qbb
    ssm-mapper

    

        
        
            com.qbb
            ssm-entity
            1.0-SNAPSHOT
        

        
            junit
            junit
            test
        

        
        
            org.springframework
            spring-context
        

        
            org.springframework
            spring-core
        

        
            org.springframework
            spring-expression
        

        
            org.springframework
            spring-beans
        

        
            org.springframework
            spring-jcl
        


        
            org.springframework
            spring-aop
        

        
            org.springframework
            spring-aspects
        


        
            org.springframework
            spring-tx
        

        
            org.springframework
            spring-jdbc
        

        
            org.springframework
            spring-test
        


        
        
            org.mybatis
            mybatis-spring
        


        
            org.mybatis
            mybatis
        

        
            com.alibaba
            druid
        


        
            mysql
            mysql-connector-java
        

        
            com.github.pagehelper
            pagehelper
        


        
        
            org.slf4j
            slf4j-api
        
        
            ch.qos.logback
            logback-classic
        

    


创建mapper接口

package com.qbb.ssm.mapper;

import com.qbb.ssm.entity.User;

import java.util.List;

/**
 * @author QiuQiu&LL (博客:https://www.cnblogs.com/qbbit)
 * @version 1.0
 * @date 2022-03-04  17:54
 * @Description:
 */
public interface UserMapper {
    List findAll();
}

创建Mybatis核心配置文件SqlMapConfig

<?xml version="1.0" encoding="UTF-8" ?>


    
    
        
        
        
        
    

    
    
        
    

    
    
        
            
            
            
        
    

    





创建Mapper映射文件

<?xml version="1.0" encoding="UTF-8" ?>


    

创建jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/qbbit3?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=root

4.创建ssm-service模块

<?xml version="1.0" encoding="UTF-8"?>

    
        ssm-parent
        com.qbb
        1.0-SNAPSHOT
    
    4.0.0

    com.qbb
    ssm-service

    
        
            com.qbb
            ssm-mapper
            1.0-SNAPSHOT
        
        
            junit
            junit
        
    


创建Service接口及实现类

package com.qbb.ssm.service;

import com.qbb.ssm.entity.User;

import java.util.List;

/**
 * @author QiuQiu&LL (博客:https://www.cnblogs.com/qbbit)
 * @version 1.0
 * @date 2022-03-04  18:46
 * @Description:
 */
public interface UserService {
    List findAll() throws Exception;
}
package com.qbb.ssm.service.impl;

import com.qbb.ssm.entity.User;
import com.qbb.ssm.mapper.UserMapper;
import com.qbb.ssm.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author QiuQiu&LL (博客:https://www.cnblogs.com/qbbit)
 * @version 1.0
 * @date 2022-03-04  18:48
 * @Description:
 */
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public List findAll() {
        return userMapper.findAll();
    }
}

创建Spring核心配置文件applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>

    
    
        
    

    
    

    
    
        
        
        
        
    

    
    
        
        
        
        
        
        
        
        
            
                
                
                    
                        
                            
                            
                            
                            true
                        
                    
                
            
        
    

    
    
        
        
    

    
    
        
        
    

    
    
    
        
    

    
    
        
        
        
        
    

    
    
        
            
            
            
            
            
             
            
            
            
            
            
            
            
            
        
    


编写一个测试类试一下

package com.qbb.ssm.service;


import com.qbb.ssm.entity.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import java.util.List;

/**
 * @author QiuQiu&LL (博客:https://www.cnblogs.com/qbbit)
 * @version 1.0
 * @date 2022-03-04  19:20
 * @Description:
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath*:applicationContext.xml")
public class UserServiceTest {

    @Autowired
    private UserService userService;

    @Test
    public void findAll() throws Exception {
        List all = userService.findAll();
        System.out.println(all);
    }
}

5.创建ssm-web模块

<?xml version="1.0" encoding="UTF-8"?>

    4.0.0

    com.qbb
    ssm-parent
    1.0-SNAPSHOT
    
        ssm-entity
        ssm-mapper
        ssm-service
        ssm-web
    
    pom


    
    
        8
        8
        4.0.1
        2.3.3
        3.0.12.RELEASE
        5.3.9
        1.18.20
        1.7.30
        1.2.5
        7.0.1.Final
        1.4
        2.0.6
        1.2.6
        3.5.7
        5.1.48
        5.2.1
        4.13.2
    

    
    
        

            
            
                junit
                junit
                ${junit.version}
                test
            

            
            
                org.springframework
                spring-context
                ${spring.version}
            

            
            
                org.springframework
                spring-core
                ${spring.version}
            

            
            
                org.springframework
                spring-expression
                ${spring.version}
            

            
            
                org.springframework
                spring-beans
                ${spring.version}
            

            
            
                org.springframework
                spring-jcl
                ${spring.version}
            

            
            
                org.springframework
                spring-aop
                ${spring.version}
            

            
            
                org.springframework
                spring-aspects
                ${spring.version}
            

            
            
                org.springframework
                spring-tx
                ${spring.version}
            

            
            
                org.springframework
                spring-jdbc
                ${spring.version}
            

            
            
                org.springframework
                spring-test
                ${spring.version}
            

            
            
                org.springframework
                spring-webmvc
                ${spring.version}
            

            
            
                org.springframework
                spring-web
                ${spring.version}
            

            
            
                commons-fileupload
                commons-fileupload
                ${fileupload.version}
            

            
            
                org.hibernate.validator
                hibernate-validator
                ${hibernate-validator.version}
            

            
            
                javax.servlet
                javax.servlet-api
                ${servlet.version}
            
            
                javax.servlet.jsp
                javax.servlet.jsp-api
                ${jsp.version}
            
            
                org.thymeleaf
                thymeleaf-spring5
                ${thymeleaf.version}
            


            
            
                org.mybatis
                mybatis-spring
                ${mybatis-spring.version}
            

            
            
                org.mybatis
                mybatis
                ${mybatis.version}
            

            
            
                com.alibaba
                druid
                ${druid.version}
            

            
            
                mysql
                mysql-connector-java
                ${mysql.version}
            

            
            
                com.github.pagehelper
                pagehelper
                ${pagehelper.version}
            

            
            
                org.projectlombok
                lombok
                ${lombok.version}
            

            
            
                org.slf4j
                slf4j-api
                ${slf4j.version}
            
            
                ch.qos.logback
                logback-classic
                ${logback.version}
            
        

    


创建UserController接口

package com.qbb.ssm.controller;

import com.qbb.ssm.entity.User;
import com.qbb.ssm.exception.MySSMException;
import com.qbb.ssm.service.UserService;
import com.qbb.ssm.util.ResultEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

/**
 * @author QiuQiu&LL (博客:https://www.cnblogs.com/qbbit)
 * @version 1.0
 * @date 2022-03-04  19:33
 * @Description:
 */
@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/test")
    @ResponseBody
    public String test(){
        return "测试";
    }

    @GetMapping("/findAll")
    @ResponseBody
    public ResultEntity findAll() throws MySSMException {
        try {
            List userList = userService.findAll();
            return ResultEntity.successWithData(userList);
        } catch (Exception e) {
            e.printStackTrace();
            throw new MySSMException();
        }
    }
}

创建统一异常处理机制

package com.qbb.ssm.exception;

import org.springframework.web.bind.annotation.ControllerAdvice;

import java.security.PrivilegedActionException;

/**
 * @author QiuQiu&LL (博客:https://www.cnblogs.com/qbbit)
 * @version 1.0
 * @date 2022-03-04  19:36
 * @Description:自定义异常
 */
public class MySSMException extends Exception{

    public MySSMException() {
    }

    public MySSMException(String message) {
        super(message);
    }

    public MySSMException(String message, Throwable cause) {
        super(message, cause);
    }

    public MySSMException(Throwable cause) {
        super(cause);
    }

    public MySSMException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
        super(message, cause, enableSuppression, writableStackTrace);
    }
}
package com.qbb.ssm.util;

import com.qbb.ssm.exception.MySSMException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.servlet.ModelAndView;

/**
 * @author QiuQiu&LL (博客:https://www.cnblogs.com/qbbit)
 * @version 1.0
 * @date 2022-03-04  19:41
 * @Description:
 */
@ControllerAdvice
public class MyExceptionResolver {

    @ExceptionHandler(MySSMException.class)
    public ModelAndView mySSMException() {
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("errorMsg", "抱歉,网络出现故障了,请联系管理员[电话:18888888888]或稍后再试!");
        modelAndView.setViewName("error");
        return modelAndView;
    }
}

创建SpringMVC核心配置文件

<?xml version="1.0" encoding="UTF-8"?>


    
    
        
        
    

    
    
        
        
        
            
                
                    
                        
                        
                        
                        
                        
                        
                    
                
            
        
    

    
    

    
    

    
    


修改web.xml

<?xml version="1.0" encoding="UTF-8"?>

    
    
    
        contextConfigLocation
        classpath*:applicationContext.xml
    
    
        org.springframework.web.context.ContextLoaderListener
    

    
    
        dispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:spring-mvc.xml
        
        1
    
    
        dispatcherServlet
        /
    

    
    
        characterEncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            UTF-8
        
        
            forceRequestEncoding
            true
        
        
            forceResponseEncoding
            true
        
    
    
        characterEncodingFilter
        /*
    

    
    
        hiddenHttpMethodFilter
        org.springframework.web.filter.HiddenHttpMethodFilter
    
    
        hiddenHttpMethodFilter
        /*
    

创建页面




    
    用户列表


ID 用户名 密码

测试

至此,SSM框架整合完毕,其他的增删改我就不一一测试了...开始进军SpringBoot

SSM