栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringMVC框架入门(四)---SSM整合

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringMVC框架入门(四)---SSM整合

目录

第四章、SSM整合开发

4.1 概述

4.1.1 简介

4.1.2 开发步骤

4.2 搭建SSM开发环境

4.2.1 maven的pom.xml文件

4.2.2 配置web.xml文件

4.3 SSM整合注解开发

4.3.1 建表Student

4.3.2 定义包 组织程序的结构

4.3.3 Spring配置文件

4.3.4 SpringMVC配置文件

4.3.5 MyBatis主配置文件

4.3.6 实体类

4.3.7 Dao接口和mapper映射文件

4.3.8 Service接口和实现类

4.3.9 Controller处理器

4.3.10 前端jsp文件


第四章、SSM整合开发

4.1 概述

4.1.1 简介

   SSM编程,即SpringMVC+Spring+MyBatis整合,是当前最为流行的JavaEE开发技术架构。其实SSM整合的实质,仅仅就是将MyBatis整合入Spring。因为SpringMVC原本就是Spring的一部分,不用专门整合。

   三个框架的功能:

        ①SpringMVC:视图层、界面层,负责接收请求,显示处理结果的。

        ②Spring:业务层,管理service、dao、工具类对象的。

        ③MyBatis:持久层,访问数据库的。

        用户发起请求---SpringMVC接收---调用Spring中的Service进行业务处理---MyBatis处理数据

   SSM整合也叫做SSI(IBayis也就是MyBatis的前身),整合中有容器:

        ①第一个容器叫做SpringMVC容器,管理Controller控制器对象的。

        ②第二个容器叫做Spring容器,管理Service、Dao、工具类对象的。

        我们要做的是把使用的对象交给合适的容器创建、管理。把Controller还有web开发的相关对

      象交给SpringMVC容器,这些web用的对象写在SpringMVC配置文件中。 把Service,Dao对

      象定义在spring的配置文件中,让spring管理这些对象。

        springmvc容器和spring容器是有关系的,关系已经确定好。springmvc容器是spring容器的子

      容器,类似java中的继承。子可以访问父的内容,在子容器中的Controller可以访问父容器中的

      Service对象,就可以实现controller使用service对象。

   SSM整合的实现方式可分为两种:

        ①基于 XML 配置方式

        ②基于注解方式。

4.1.2 开发步骤

   1.创建数据库及建表;

   2.新建maven web项目;

   3.加入依赖:springmvc,spring,mybatis三个框架的依赖,jackson依赖,mysql驱动,druid连接池,jsp,servlet依赖;

   4.配置web.xml文件:

        ①注册DispatcherServlet:创建springmvc容器对象,才能创建Controller类对象;创建的是

      Servlet,才能接收用户的请求。

        ②注册spring的监听器:ContextLoaderListener。创建spring的容器对象,才能创建service、

      dao等对象。

        ③注册字符集过滤器。解决post请求乱码的问题。

   5.创建包。controller包、service、dao、实体类包名创建好;

   6.写springmvc,spring,mybatis的配置文件:springmvc配置文件、spring配置文件、mybatis主配置文件、数据库的属性文件;

   7.写代码,dao接口和mapper文件,servic和实现类,controller,实体类;

   8.写jsp页面。

4.2 搭建SSM开发环境

4.2.1 maven的pom.xml文件



4.0.0

com.bjpowernode
07-ssm
1.0-SNAPSHOT
war


  UTF-8
  1.8
  1.8



  
    junit
    junit
    4.11
    test
  

  
    javax.servlet
    javax.servlet-api
    3.1.0
    provided
  

  
  
    javax.servlet.jsp
    jsp-api
    2.2.1-b03
    provided
  


  
    org.springframework
    spring-webmvc
    5.2.5.RELEASE
  

  
    org.springframework
    spring-tx
    5.2.5.RELEASE
  

  
    org.springframework
    spring-jdbc
    5.2.5.RELEASE
  

  
    com.fasterxml.jackson.core
    jackson-core
    2.9.0
  

  
    com.fasterxml.jackson.core
    jackson-databind
    2.9.0
  

  
    org.mybatis
    mybatis-spring
    1.3.1
  

  
    org.mybatis
    mybatis
    3.5.1
  

  
    mysql
    mysql-connector-java
    5.1.9
  

  
    com.alibaba
    druid
    1.1.12
  



  
    
      src/main/java
      
      
        
        ***.xml
      
      false
    
  

  
    
      maven-compiler-plugin
      3.1
      
        1.8
        1.8
      
    
  

4.2.2 配置web.xml文件

   1.注册ContextLoaderListener监听器:注册ServletContext监听器的实现类ContextLoaderListener,用于创建Spring容器及将创建好的Spring容器对象放入到ServletContext的作用域中。

   2.注册字符集过滤器:注册字符集过滤器,用于解决请求参数中携带中文时产生乱码问题。

   3.配置中央调度器:配置中央调度器时需要注意,SpringMVC的配置文件名与其它Spring配置文件名不相同。这样做的目的是Spring容器创建管理Spring配置文件中的bean,SpringMVC容器中负责视图层bean的初始。




    
    
        myWeb
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:conf/dispatcherServlet.xml
        
    
    
    
        myWeb
        *.do
    

    
    
        contextConfigLocation
        classpath:conf/applicationContext.xml
    
    
        org.springframework.web.context.ContextLoaderListener
    
    
    
    
        characterEncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            utf-8
        
        
            forceRequestEncoding
            true
        
        
            forceResponseEncoding
            true
        
    
    
        characterEncodingFilter
        /*
    

4.3 SSM整合注解开发

4.3.1 建表Student

4.3.2 定义包 组织程序的结构

4.3.3 Spring配置文件

JDBC属性配置文件:

jdbc.url=jdbc:mysql://localhost:3306/springdb
jdbc.username=root
jdbc.password=123456



    

    

    
    
        
        
        
    

    
    
        
        
    

    
    
        
        
    

    
    

    

4.3.4 SpringMVC配置文件



    
    
    

    
        
        
    

    
    
    

4.3.5 MyBatis主配置文件




    
        
        
    

    
    
        
        
    

    
    
        
        
    

4.3.6 实体类
package com.bjpowernode.domain;

public class Student {
    private Integer id;
    private String name;
    private Integer age;

    public Student() {
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + ''' +
                ", age=" + age +
                '}';
    }
}

4.3.7 Dao接口和mapper映射文件
package com.bjpowernode.dao;

import com.bjpowernode.domain.Student;
import java.util.List;

public interface StudentDao {

    int insertStudent(Student student);

    List selectStudents();
}



    

    
        insert into student(name,age) values(#{name},#{age})
    

4.3.8 Service接口和实现类
package com.bjpowernode.service;

import com.bjpowernode.domain.Student;
import java.util.List;

public interface StudentService {
    int addStudent(Student student);

    List findStudents();
}
package com.bjpowernode.service.impl;

import com.bjpowernode.dao.StudentDao;
import com.bjpowernode.domain.Student;
import com.bjpowernode.service.StudentService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;

@Service
public class StudentServiceImpl implements StudentService {

    //引用类型自动注入@Autowired,@Resource
    @Resource
    private StudentDao studentDao;

    @Override
    public int addStudent(Student student) {
        int nums = studentDao.insertStudent(student);
        return nums;
    }

    @Override
    public List findStudents() {
        return studentDao.selectStudents();
    }
}

4.3.9 Controller处理器
package com.bjpowernode.controller;

import com.bjpowernode.domain.Student;
import com.bjpowernode.service.StudentService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import java.util.List;

@Controller
@RequestMapping("/student")
public class StudentController {

    @Resource
    private StudentService service;

    //注册学生
    @RequestMapping("/addStudent.do")
    public ModelAndView addStudent(Student student){
        ModelAndView mv = new ModelAndView();
        String tips = "注册失败";
        //调用service处理student
        int nums = service.addStudent(student);
        if(nums > 0){
            tips = "学生 " + student.getName() + " 注册成功";
        }
        //添加数据
        mv.addObject("tips",tips);
        //指定那个结果页面
        mv.setViewName("result");
        return mv;
    }

    //处理查询,响应ajax
    @RequestMapping("/queryStudent.do")
    @ResponseBody//将java对象转为json对象
    public List queryStudent(){
        //参数检查,简单的数据处理
        List students = service.findStudents();
        return students;
    }
}

4.3.10 前端jsp文件

   index.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    String basePath = request.getScheme() + "://" + request.getServerName() + ":" +
            request.getServerPort() + request.getContextPath() + "/";
%>


    功能入口
    


    
        

SSM整合的例子

注册学生
浏览学生

   addStudent.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    String basePath = request.getScheme() + "://" + request.getServerName() + ":" +
            request.getServerPort() + request.getContextPath() + "/";
%>


    注册学生
    


    
        
姓名:
年龄

   listStudent.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    String basePath = request.getScheme() + "://" + request.getServerName() + ":" +
            request.getServerPort() + request.getContextPath() + "/";
%>


    查询学生ajax
    
    
    


    
        
学号 姓名 年龄

   result.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


result.jsp 结果页面,注册结果:${tips}

PS:根据动力节点课程整理,如有侵权,联系删除。 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/434880.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号