SpringBoot2.x系列教程06--SpringBoot中结合XML文件实现SSM整合

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 前言前面几篇文章中,壹哥 主要是带各位简单的认识一下SpringBoot,算是做了个开场白,接下来才是咱们学习SpringBoot的重点。所以从本篇文章开始,咱们逐步进入到更实用的学习上来,前面的配置只是为了让我们使用SpringBoot的时候更简单舒服一点。接下来我们就看看在SpringBoot到底该怎么实现SSM整合吧。一. 添加核心配置1. SSM整合简介在学习SpringBoot之前,相信各位都有SSM整合的经验,我们知道之前的SSM配置,真的是很痛苦,需要编写大量的xml文件,稍不注意就会出错。但是自从有了SpringBoot,这一切都变得轻松而简单了。Spring

前言

前面几篇文章中,壹哥 主要是带各位简单的认识一下SpringBoot,算是做了个开场白,接下来才是咱们学习SpringBoot的重点。所以从本篇文章开始,咱们逐步进入到更实用的学习上来,前面的配置只是为了让我们使用SpringBoot的时候更简单舒服一点。

接下来我们就看看在SpringBoot到底该怎么实现SSM整合吧。

一. 添加核心配置

1. SSM整合简介

在学习SpringBoot之前,相信各位都有SSM整合的经验,我们知道之前的SSM配置,真的是很痛苦,需要编写大量的xml文件,稍不注意就会出错。但是自从有了SpringBoot,这一切都变得轻松而简单了。

Spring Boot可以帮助我们快速搭建出一个SSM框架整合的环境,我们只需要少量代码即可实现。如果我们想在SpringBoot项目中实现SSM整合,可以用如下两种方式:

  • 1️⃣. 以XML配置方式;
  • 2️⃣. 以注解配置方式。

接下来,壹哥 就带各位在SpringBoot中,先以XML配置文件的方式来实现SSM整合。

2. 创建一个新的module

本系列教程中所有的代码案例,都是以迭代方式,在之前案例的基础上进行增量编写的!所以我这里就直接在之前的SpringBoot项目里,创建一个新的Module,各位可以自行创建。

设置自己module模块的名称,不一定非要和我一样。

创建出来的module模块代码结构如下图:

3. 将项目改造成Spring Boot项目

接下来我们就在这个module的基础上进行改造,把项目改造成SpringBoot项目,这时候我们只需要在项目中添加SpringBoot的父依赖以及编译插件即可。

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.5.RELEASE</version><relativePath/><!-- lookup parent from repository --></parent><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

4. 在pom文件中添加相关依赖

因为我们这里要实现SSM整合,所以需要有Spring、SpringMVC、Mybatis等相关依赖包,而SpringBoot中的依赖包不再想以前那样导入很多分散的依赖,只需要导入相关starter启动器即可。

<dependencies><!-- web支持: 1、web mvc; 2、restful; 3、jackjson支持; 4、aop ........ --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.46</version></dependency><!--spring-boot mybatis依赖:请不要使用1.0.0版本,因为还不支持拦截器插件.--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.1</version></dependency><!--mybatis分页插件--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.3</version></dependency><!--简化bean代码--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency></dependencies>

5. 添加识别xml文件的配置

因为本案例中,是以XML文件方式来实现SSM整合,所以我们需要在项目中能够识别所有的XML文件,我们只需要添加如下配置即可支持XML文件的识别功能了。

<build><!--注意:配置xml资源属性,允许java包下的xml文件可编译--><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource></resources></build>

6. 配置application.properties

接下来我们还要创建一个application.properties文件,在这里进行必要的配置,主要是设置数据源和mybaits配置,各位请根据自己的数据库信息自行配置。

#数据源配置spring.datasource.username=root
spring.datasource.password=syc
spring.datasource.url=jdbc:mysql://localhost:3306/db1?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#mybatis配置mybatis.type-aliases-package=com.yyg.boot.domain
mybatis.mapper-locations=classpath:com/yyg/boot/domain/*.xml

二. 编写核心代码

1. 创建数据库以及student表

因为本案例中需要实现SSM整合,所以离不开数据库的支持,这里我先创建一个简单的数据库表格,SQL脚本如下:

#数据库脚本
CREATETABLE student (id INTEGER(20) PRIMARY KEY AUTO_INCREMENT NOTNULL,NAME VARCHAR(30),sex VARCHAR(4));#添加数据语句
INSERTINTO student (NAME,sex)VALUES('三胖','男');INSERTINTO student (NAME,sex)VALUES('特没谱','女');

2. 创建pojo实体对象

为了方便数据封装,我们可以创建出“com.yyg.boot.domain”包,在该包下面创建一个Student实体类,封装student表中的数据信息!

packagecom.syc.boot.domain;
importlombok.AllArgsConstructor;
importlombok.Data;
importlombok.NoArgsConstructor;
@Data@NoArgsConstructor@AllArgsConstructorpublicclassStudent {
privateIntegerid;
privateStringname;
privateStringsex;
}

3. 编写StudentMapper接口类

接下来我们需要创建一个“com.yyg.boot.mapper”包,在该包下面创建出StudentMapper接口,这是Mybatis的dao层映射接口类,我们在这里封装好数据库操作方法。

packagecom.yyg.boot.mapper;
importcom.yyg.boot.domain.Student;
importorg.apache.ibatis.annotations.Param;
importjava.util.List;
publicinterfaceStudentMapper {
List<Student>getAll();
StudentgetById(@Param("id") intid);
}

4. 编写对应的StudentMapper.xml文件

有了Mapper接口类,肯定还需要有对应的Mapper.xml文件,这里我们编写一个StudentMapper.xml文件,存放在“com.yyg.boot.mapper”包里面。

StudentMapper.xml文件内容如下,各位可以参考创建自己的xml文件。

<?xmlversion="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" ><mappernamespace="com.yyg.boot.mapper.StudentMapper"><selectid="getAll"resultType="com.yyg.boot.domain.Student">        SELECT * FROM student
</select><selectid="getById"resultType="com.yyg.boot.domain.Student">        SELECT * FROM student
        where id=#{id}
</select></mapper>

5. 编写service及其实现类

根据三层架构的思想,我们还应该创建一个“com.yyg.boot.service”的包及其子包“impl”。

5.1 StudentService接口

我们在service包里面创建出一个StudentService接口。

packagecom.yyg.boot.service;
importcom.yyg.boot.domain.Student;
importjava.util.List;
publicinterfaceStudentService {
/*** 分页参数*/List<Student>getAll(IntegerpageNum, IntegerpageSize);
Studentget(Integerid);
}

5.2 StudentServiceImpl实现类

然后在impl包里面,创建出对应的StudentServiceImpl实现类。

packagecom.yyg.boot.service.impl;
importcom.github.pagehelper.PageHelper;
importcom.github.pagehelper.PageInfo;
importcom.yyg.boot.domain.Student;
importcom.yyg.boot.mapper.StudentMapper;
importcom.yyg.boot.service.StudentService;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.stereotype.Service;
importjava.util.List;
@ServicepublicclassStudentServiceImplimplementsStudentService {
@AutowiredprivateStudentMapperstudentMapper;
@OverridepublicList<Student>getAll(IntegerpageNum, IntegerpageSize) {
//在查询之前设置分页,利用Mybatis的分页插件实现分页PageHelper.startPage(pageNum, pageSize);
List<Student>list=studentMapper.getAll();
PageInfo<Student>info=newPageInfo<>(list);
returninfo.getList();
    }
@OverridepublicStudentget(Integerid) {
returnstudentMapper.getById(id);
    }
}

6. 编写Controller类

接着我们再创建出一个“com.yyg.boot.web”包,在该包里面创建一个StudentController类,在该类中创建一下Web接口。

packagecom.syc.boot.web;
importcom.syc.boot.domain.Student;
importcom.syc.boot.service.StudentService;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.stereotype.Controller;
importorg.springframework.web.bind.annotation.*;
importjava.util.List;
@RestController@RequestMapping("/stu")
publicclassStudentController {
@AutowiredprivateStudentServicestudentService;
@RequestMapping(value="/find", method=RequestMethod.GET)
publicList<Student>find(@RequestParam(name="pageNum",required=false,defaultValue="1") IntegerpageNum,@RequestParam(name="pageSize" ,required=false,defaultValue="20") IntegerpageSize) {
returnstudentService.getAll(pageNum,pageSize);
    }
@RequestMapping(value="/{id}", method=RequestMethod.GET)
publicStudentget(@PathVariable(name="id") Integerid) {
returnstudentService.get(id);
    }
}

7. 编写程序入口

最后我们在“com.yyg.boot”包的根目录下,创建一个程序入口类SSMApplication!这里一定要注意在该类上配置@MapperScan注解,扫描mapper接口文件所在包!

packagecom.yyg.boot;
importorg.mybatis.spring.annotation.MapperScan;
importorg.springframework.boot.SpringApplication;
importorg.springframework.boot.autoconfigure.SpringBootApplication;
/*** 以XML方式整合SSM.* MapperScan:扫描Mybatis接口文件*/@MapperScan("com.yyg.boot.mapper")
@SpringBootApplicationpublicclassSSMApplication {
publicstaticvoidmain(String[] args) {
SpringApplication.run(SSMApplication.class, args);
    }
}

8. 项目包结构

最后,我们项目的核心配置与核心代码就都编写完毕了,整个项目的代码结构如下图所示:

三. 测试项目

接下来我们就把项目启动起来,看看SSM整合有没有实现。

1. 测试ssm整合及分页效果

我们通过启动入口类,把项目启动起来,进行测试。

2. 查询所有学生

项目启动起来后,我们在浏览器中可以访问如下接口,测试查询所有学生功能。

3. 根据id查询某个学生

然后我们再访问如下接口,测试根据id查询学生功能。

4. 分页查询

因为咱们项目中添加了分页依赖,这里我再测试一下分页查询功能。

结语

至此,我们就以XML配置文件的方式,实现了SSM整合功能。如果各位在以前使用过传统的SSM配置方式,你会发现,SpringBoot实现SSM整合真的简单轻松了很多,我们根本就不需要再编写那么多的xml文件了。今天的内容你学会了吗?评论区留言讨论今天的得失吧。

今日小作业:

实现SSM整合,编写一个带有页面的学生信息管理功能。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
XML 前端开发 Java
讲解SSM的xml文件
本文详细介绍了SSM框架中的xml配置文件,包括springMVC.xml和applicationContext.xml,涉及组件扫描、数据源配置、事务管理、MyBatis集成以及Spring MVC的视图解析器配置。
73 1
|
4月前
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
|
1月前
|
XML Android开发 数据格式
Eclipse 创建 XML 文件
Eclipse 创建 XML 文件
27 2
|
1月前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
126 8
|
3月前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
484 37
|
2月前
|
XML JavaScript Java
java与XML文件的读写
java与XML文件的读写
29 3
|
2月前
|
SQL Java 数据库连接
快速搭建SSM项目【最全教程】~令狐小哥版
快速搭建SSM项目【最全教程】~令狐小哥版
49 1
|
2月前
|
XML 存储 数据格式
|
2月前
|
前端开发 Java 关系型数据库
【保姆级SSM教程】高并发朋友圈点赞项目设计
【保姆级SSM教程】高并发朋友圈点赞项目设计
41 0
|
2月前
|
XML 存储 缓存
C#使用XML文件的详解及示例
C#使用XML文件的详解及示例
116 0
下一篇
DataWorks