SpringMVC(三)—— SSM整合

文章目录

    • 概念介绍
    • 实现步骤
      • 一、导入依赖
      • 二、创建对应的类;
        • bean类:
        • dao层接口
        • service层对应的类
        • Controller层对应的类
      • 三、创建对应的文件
        • 创建Mapper的配置文件
        • 创建MyBatis的配置文件
        • 创建Spring的配置文件
        • SpringMVC的配置文件
        • 创建JSP显示页面文件
        • 配置web.xml文件
      • 四、部署项目
      • 五、使用
    • 无法创建对象错误

概念介绍

SSM:Spring+SpringMVC+MyBatis

SpringMVC负责MVC设计模式的实现,MyBatis负责数据持久层,Spring的IOC来管理SpringMVC和MyBatis相关对象的创建注入,Spring的AOP负责事务管理;

SpringMVC(三)—— SSM整合_第1张图片
SSM整合Spring的作用:

  1. 通过Spring管理持久层mapper(dao层接口);
  2. 通过Spring管理service层,service层调用dao层,事务管理;
  3. 通过Spring管理展示层,Controller,Controller调用service层;

以下是一个SSM整合框架的实现思路:

  1. 整合dao层:MyBatis和Spring整合,通过Spring管理接口,使用Mapper接口扫自动扫描mapper接口在Spring中注册;
  2. 整合service层:通过Spring管理service层接口,是使用配置方法将service接口配置在Spring的文件中;
  3. 整合SpringMVC:SpringMVC本来就是Spring的一部分,不需要整合;

实现步骤

  1. 导入依赖;
  2. 创建对应的bean类、dao层接口、service对应的类、Controller层对应的类;
  3. 创建Mapper的配置文件、创建MyBatis的配置文件、创建Spring、SpringMVC的配置文件,创建JSP显示页面文件、配置web.xml文件;
  4. 部署项目到服务器;
  5. 使用;

整个目录结构如下:
SpringMVC(三)—— SSM整合_第2张图片

一、导入依赖

    
    
      org.springframework
      spring-beans
      4.1.7.RELEASE
    
    
      org.springframework
      spring-core
      4.1.7.RELEASE
    
    
      org.springframework
      spring-context
      4.1.7.RELEASE
    
    
      org.springframework
      spring-expression
      4.1.7.RELEASE
    

    
    
      org.springframework
      spring-webmvc
      4.1.7.RELEASE
    
    
      org.springframework
      spring-web
      4.1.7.RELEASE
    
    
      javax.servlet
      javax.servlet-api
      3.1.0
    

    
    
      org.springframework
      spring-jdbc
      4.2.8.RELEASE
    
    
      org.springframework
      spring-tx
      4.2.8.RELEASE
    


    
    
      javax.servlet
      jstl
      1.2
    


    
    
      org.mybatis
      mybatis
      3.4.6
    

    
    
      mysql
      mysql-connector-java
      8.0.17
    


    
    
      log4j
      log4j
      1.2.17
    
    
      org.slf4j
      slf4j-log4j12
      1.7.21
    
    
      org.slf4j
      slf4j-api
      1.7.21
    

    
    
      org.springframework
      spring-aop
      4.3.9.RELEASE
    
    
      org.aspectj
      aspectjweaver
      1.6.0
    
    
      aopalliance
      aopalliance
      1.0
    

    
    
      com.mchange
      c3p0
      0.9.5.2
    

    
    
      org.mybatis
      mybatis-spring
      1.3.2
    

二、创建对应的类;

目录结构如下:
SpringMVC(三)—— SSM整合_第3张图片
数据库表如下:
SpringMVC(三)—— SSM整合_第4张图片

bean类:

public class Student {
    private int SID;
    private String Sname;
    private String Ssex;
    private int Age;

    //get、set、toString方法略
}

dao层接口

public interface StudentMapper {
    @Select("select * from Student")
    public List getStudentBean();  //根据给定id查找并返回对象
}

service层对应的类

@Service
public class StudentService {
    @Autowired
    private StudentMapper studentMapper;

    public List getAllStudent() {
        return studentMapper.getStudentBean();
    }
}

Controller层对应的类

@Controller
@RequestMapping("/student")
public class StudentController {
    @Autowired
    private StudentService studentService;

    @RequestMapping("/springmvc2")
    public ModelAndView getStudentList(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
        //查询
        List list = studentService.getAllStudent();

        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("students",list);

        //逻辑视图名
        modelAndView.setViewName("jsp1");
        return modelAndView;
    }
}

三、创建对应的文件

对应的目录结构如下:
SpringMVC(三)—— SSM整合_第5张图片

创建Mapper的配置文件

StudentMapper.xml:





    
    

创建MyBatis的配置文件

mybatis.xml:





    

    
    
        
    

创建Spring的配置文件

spring.xml:





    
    
        
        
        
        
    

    
    
        
        

        
        

        
        
    

    
    
        
        
        
        
    

    
    

SpringMVC的配置文件

springmvc4.xml:





    
    

    
    

    
    
        
        
        
        
        
        
    


创建JSP显示页面文件

SpringMVC(三)—— SSM整合_第6张图片

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>



    
    用户列表



用户列表

<%----%> <%-- students 要与后台保持一致--%>
选择编号 姓名 性别 年龄
${student.SID } ${student.sname} ${student.ssex } ${student.sage }

配置web.xml文件



  springmvc
  
  
    contextConfigLocation
    classpath:ssm整合/spring.xml
  
  
    org.springframework.web.context.ContextLoaderListener
  

  
  
    springmvc
    org.springframework.web.servlet.DispatcherServlet
    
    
      
      contextConfigLocation
      classpath:ssm整合/springmvc4.xml
    
  
  
    springmvc
    /
  

四、部署项目

前面文章写过,不在赘述,地址→https://blog.csdn.net/QQ2899349953/article/details/85397967

五、使用

启动项目,本地访问http://localhost:8080/student/springmvc2即可;
SpringMVC(三)—— SSM整合_第7张图片

无法创建对象错误

我的错误是在启动项目的时候,一直报错误:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'studentController': Injection of autowired dependencies failed; nested exception is ......

我搜博客,给的解决办法是说什么注解写错了或没写、配置路径写错了、依赖包导入少了之类的,但我检查之后发现我的注解、配置、依赖都没有问题,问题出在mybatis的配置文件的约束上面,约束错了,就是mybatis.xml最前面的那几行网址错了:
SpringMVC(三)—— SSM整合_第8张图片
所以结合博客,如果发现自己的项目启动之后报这个错误,无法创建bean,无法注入属性之类的,解决办法如下:

  1. 检查对应的注解是否写了,是否写正确;
  2. 检查配置文件路径是否写对;
  3. 检查对应文件的约束是否正确(如果1、2都正确,一般就是这个的问题,比较隐蔽);
  4. 检查依赖包是否导全了(一般不会是因为这个的问题);

你可能感兴趣的:(框架)