0%

基于MVC思想下的SSM搭建练习

通过搭建一个简单的图书管理系统网站,来串联整个 MVC 和 SSM

什么是 MVC

MVC 是一种三层架构,是一个开发标准,Model、View、Controller,项目模块化,各个部分完成各个部分的任务,更加方便开发和维护。

画一个图方便理解:

MVC三层架构

什么是SSM

SSM 是三种框架:SpringMVC 、Spring、Mybatis 的缩写,SpringMVC 负责 view 和 Controller;Mybatis 负责 Dao 和 DataBase;Spring 负责将所有的模块整合起来,统一配置。

项目搭建的过程以及思路:

这里只整理整个逻辑,不贴详细代码,具体代码见 我的 GitHub ssmbuild

项目业务分析

我们要做一个图书管理系统,主要业务有,展示数据库中所有图书的信息,通过图书的 id 查询某本图书的信息,添加某一本图书信息,修改某一本图书的信息,删除某一本图书的信息,说白了,还是增删改查。

准备工作

首先我们需要一个 maven 项目, 一个 MySql 数据库,把数据库中的 books 表准备好,作为初始的所有图书信息,主要是 sql 语句的使用,maven 依赖的导入。==一定注意每个依赖的版本,我的数据库使用最新的8.0版本,因此 jdbc connector 和 Spring 的版本都使用的最新的,不然会报错!==

然后,配置 mybatis ,配置 Spring ,提前分好层:controller service mapper pojo

写 POJO 层

根据数据库创建实体类,可以使用 Lombok 简写 set/get/toString 以及构造方法。

写 DAO/MAPPER 层

根据实体类写 mapper 接口,主要是增删改查四个方法,然后写对应的 xml 配置文件

写 SERVICE 层

继续向上层写,根据 mapper 写对应的 service 接口,service 层的本质就是调用 mapper

在写 service 的实现类 serviceImpl 的时候,需要为其添加成员变量 mapper

注入 Spring 层

Spring 就仿佛一个收纳盒,你可以把所有的对象和各种框架配置都放在里面,把类注入 Spring 就是把一个 new 好的对象 放到 Spring 容器中(Spring 默认的单例模式),如果你要使用这个对象,不需要在代码里去 new 它,只需要直接使用就可以了,因为它已经在 Spring 容器中了,而以前你的代码里 new 对象,决定了 你的程序的业务,现在,你的配置文件里注入的 Java bean 决定了你程序的业务,而配置是开发的,这意味着你把控制权从 修改代码的程序猿 开放给了 修改配置文件的,这就是所谓的控制反转(IOC)

Spring 整合 Mybatis

相当于 把之前在 Mybatis 里写的配置文件,合并到 Spring 配置文件里,都是一些写死的固定代码,比如配置数据库连接池,链接数据库,Spring 还有一个好的是,你可以把 Mybatis 里手写的读取配置文件,构造 SqlFactoryBuilder 和 SqlFactory 以及 SqlSession 的步骤统统注册到 bean 里!通过动态代理技术,动态的生成 mapper 的代理类并且自动注入到 Spring 中。

Service 层注入 Spring

对于类的注入,现在都采用注解的方式,所以 Spring 配置文件中只需要开启注解,开启事务,注入 service 层的实现类就可以了(serviceImpl 里面的成员变量 mapper 会在 Spring 整合 mybatis 里动态生成,名字和mapper 接口名一样!)

写 View 和 Controller

首先添加 web 项目的目录结构,需要一个 web 目录,下面存放 view 层的各种静态资源。

配置 web.xml

主要是为了配置 Spring MVC 的核心:DispatcherServlet,以及 编码过滤、session 生命周期等。

Spring 整合 Spring MVC

Spring MVC 的配置主要有:映射器、适配器、视图解析器。

编写 Controller 层以及前端 JSP 页面