• SpringBoot2基础篇(三)—— 整合第三方技术


    03、整合第三方技术

    3.1、整合JUnit

    1、SpringBoot整合JUnit

    @SpringBootTest
    class Springboot04JunitApplicationTests {
       //1.注入需要测试的对象
       @Autowired
       private BookDao bookDao;
    
       @Test
       void contextLoads() {
          //2.执行要测试的对象对应的方法
          bookDao.save();
       }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    2、SpringBootTest

    • 名称:@SpringBootTest
    • 类型:测试类注解
    • 位置:测试类定义上方
    • 作用:设置JUnit加载的SpringBoot启动类
    • 相关属性
      • classes:设置SpringBoot启动类
    • 范例:

    在这里插入图片描述

    小结:

    1. 导入测试对应的starter

      在这里插入图片描述

    1. 测试类使用@SpringBootTest修饰

    2. 使用自动装配的形式添加要测试的对象

    3、此时,将测试类换个位置存放,则无法运行该测试类

    则需要使用classes属性来指定引导类

    @SpringBootTest(classes = Springboot04JunitApplication.class)
    class Springboot04JunitApplicationTests {}
    
    • 1
    • 2

    注意:

    如果测试类在SpringBoot启动类的包或子包中,可以省略启动类的设置,也就是省略classes的设定

    小结:

    1. 测试类如果存在于引导类所在包或子包中无需指定引导类
    2. 测试类如果不存在于引导类所在的包或子包中需要通过classes 属性指定引导类

    3.2、整合MyBatis

    1、需要配置:

    • 核心配置:数据库连接相关信息(连什么?连谁?什么权限?)
    • 映射配置:SQL映射(XML/注解)

    2、步骤:

    ①:创建新模块,选择Spring初始化,并配置模块相关基础信息

    ②:选择当前模块需要使用的技术集(MyBatis、MySQL)

    在这里插入图片描述

    ③:设置数据源参数

    #2、配置相关信息
    spring:
      datasource:
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://localhost:3306/ssm_db
        username: root
        password: root
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    ④:定义数据层接口与映射配置

    @Mapper
    public interface BookDao {
        @Select("select * from tbl_book where id = #{id}")
        public Book getById(Integer id);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    ⑤:测试类中注入dao接口,测试功能

    @SpringBootTest
    class Springboot05MybatisApplicationTests {
        @Autowired
        private BookDao bookDao;
    
        @Test
        void contextLoads() {
            Book book = bookDao.getById(1);
            System.out.println(book);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    小结:

    1. 勾选MyBatis技术,也就是导入MyBatis对应的starter
    2. 数据库连接相关信息转换成配置
    3. 数据库SQL映射需要添加@Mapper被容器识别到

    3、SpringBoot整合MyBatis常见问题

    MySQL 8.X驱动强制要求设置时区

    • 修改url,添加serverTimezone设定

      • SpringBoot版本低于2.4.3(不含),Mysql驱动版本大于8.0时,需要在url连接串中配置时区

        url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC
        
        • 1
    • 修改MySQL数据库配置(略)

    ②驱动类过时,提醒更换为com.mysql.cj.jdbc.Driver

    driver-class-name: com.mysql.cj.jdbc.Driver
    
    • 1

    3.3、整合MybatisPlus

    1、MyBatis-PlusMyBatis区别

    • 导入坐标不同
    • 数据层实现简化

    2、步骤

    ①:手动添加SpringBoot整合MyBatis-Plus的坐标,可以通过mvnrepository.com获取

    <dependency>
        <groupId>com.baomidougroupId>
        <artifactId>mybatis-plus-boot-starterartifactId>
        <version>3.4.3version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    注意:

    由于SpringBoot中未收录MyBatis-Plus的坐标版本,需要指定对应的Version

    ②:定义数据层接口与映射配置,继承BaseMapper

    @Mapper
    public interface BookDao extends BaseMapper<Book> {
    }
    
    • 1
    • 2
    • 3

    ③:设置Mp相关的配置

    #设置Mp相关的配置
    #给所有的表加一个前缀tb_
    mybatis-plus:
      global-config:
        db-config:
          table-prefix: tbl_
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    ④:其他同SpringBoot整合MyBatis

    小结:

    1. 手工添加MyBatis-Plus对应的starter
    2. 数据层接口使用BaseMapper简化开发
    3. 需要使用的第三方技术无法通过勾选确定时,需要手工添加坐标

    3.4、整合Druid

    • 指定数据源类型
    spring:
      datasource:
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC
        username: root
        password: root
        type: com.alibaba.druid.pool.DruidDataSource
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 导入Druid对应的starter
    <dependency>
        <groupId>com.alibabagroupId>
        <artifactId>druid-spring-boot-starterartifactId>
        <version>1.2.6version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 变更Druid的配置方式
    spring:
      datasource:
        druid:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC
          username: root
          password: root
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3.5、总结

    整合任意第三方技术

    • 导入对应的starter
    • 配置对应的设置或采用默认配置

  • 相关阅读:
    VS Code + Vue 开发环境搭建
    C#应用处理传入参数 - 开源研究系列文章
    7.docker部署前端vue项目,实现反向代理配置
    使用mumu模拟器抓包 andriod app
    C语言实现双人贪吃蛇项目(基于控制台界面)
    explain 各字段介绍
    【Three.js】知识梳理二十二:相机视角的平滑过渡与点击模型视角切换
    [carla入门教程]-3 在carla中遥控汽车并采集传感器数据(一个简单Demo,附代码)
    【设计原则篇】聊聊接口隔离原则
    c语言extern关键字
  • 原文地址:https://blog.csdn.net/kuaixiao0217/article/details/126232131