SpringBoot热部署和整合Mybatis的过程

 更新时间:2023年10月16日 15:06:27   作者:会洗碗的CV工程师  
热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用,本文给大家详细介绍SpringBoot热部署和整合Mybatis的过程,感兴趣的朋友跟随小编一起看看吧

一、SpringBoot热部署

热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用。即修改完代码后不需要重启项目即可生效。在SpringBoot中,可以使用DevTools工具实现热部署

1.1 添加DevTools依赖

首先我们需要在pom文件中引入devtools的依赖,如下:

<!-- 热部署工具 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
</dependency>

1.2 在idea中设置自动编译

点击 File-->Settings

如上图,勾选上。 

1.3 在Idea设置自动运行

快捷键 Ctrl+Shift+Alt+/ 后点击 Registry ,勾选complier.automake.allow.when.app.running

然后我们来测试一下,运行项目,然后在运行时往/show2路径修改输出看看是否不用重启项目也能发生改变。

修改之后,在控制台可以看到:重新运行了一下项目。

并且再次访问可以出现我们新添加的数据

则说明我们的热部署生效

二、SpringBoot整合Mybatis

Spring整合MyBatis时需要进行大量配置,而SpringBoot整合MyBatis则可以简化很多配置:

2.1 准备数据

-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student`  (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `sex` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
 
-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES (1, 'LYL', '男', '广州');
INSERT INTO `student` VALUES (2, 'HQX', '女', '揭阳');

 添加pojo类:

package com.example.springbootdemo3.pojo;
public class Student {
    private int id;
    private String name;
    private String sex;
    private String address;
    public Student() {
    }
    public Student(int id, String name, String sex, String address) {
        this.id = id;
        this.name = name;
        this.sex = sex;
        this.address = address;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    @Override
    public String toString() {
        return "Student [" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", address='" + address + '\'' +
                " ]";
    }
}

2.2 添加相关依赖

那么这里我们需要添加Mysql驱动和Mabatis依赖

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.3.0</version>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

2.3 在配置文件进行数据源配置

然后在配置文件进行如下配置,配置数据源和sql日志输出

# 配置数据源
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql:///student?serverTimezone=UTC
    username: root
    password: 666666
# mybatis配置
mybatis:
  # 映射文件位置
  mapper-locations: com/example/springbootdemo3/mapper/*Mapper.xml
  # 别名
  type-aliases-package: com.example.springbootdemo3.pojo
#日志格式
logging:
  pattern:
    console: '%d{YYYY-MM-dd HH:mm:ss.SSS} %clr(%-5level) --- [%-15thread]%cyan(%-50logger{50}):%msg%n'

2.4 编写Mapper接口和Mapper文件

然后新建一个mapper包,里面新建一个StudentMapper接口

package com.example.springbootdemo3.mapper;
 
import com.example.springbootdemo3.pojo.Student;
import org.apache.ibatis.annotations.Mapper;
 
import java.util.List;
 
@Mapper
public interface StudentMapper {
    List<Student> findAll();
}

这里还要在resources目录下新建一个与StudentMapper同级目录和同名的.xml文件

内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.springbootdemo3.mapper.StudentMapper">
    <select id="findAll" resultType="com.example.springbootdemo3.pojo.Student">
        select * from student;
    </select>
</mapper>

2.5 测试

OK,从上面我们已经新建了一个查询所有的方法啊,现在在测试类我们看看能否成功获取数据库信息。测试类代码如下:

package com.example.springbootdemo3.mapper;
import com.example.springbootdemo3.pojo.Student;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
@SpringBootTest
public class StudentMapperTest {
    @Autowired
    private StudentMapper studentMapper;
    @Test
    public void testFindAll(){
        List<Student> students = studentMapper.findAll();
        students.forEach(System.out::println);
    }
}

OK,可以看到也是能够成功获取信息的。

到此这篇关于SpringBoot热部署和整合Mybatis的文章就介绍到这了,更多相关SpringBoot热部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MyBatis 核心组件Configuration实例详解

    MyBatis 核心组件Configuration实例详解

    Configuration用于描述 MyBatis 的主配置信息,其他组件需要获取配置信息时,直接通过 Configuration 对象获取,这篇文章主要介绍了MyBatis核心组件Configuration,需要的朋友可以参考下
    2023-08-08
  • 浅谈Java实现回溯算法之八皇后问题

    浅谈Java实现回溯算法之八皇后问题

    八皇后问题是一个古老而又著名的问题,是学习回溯算法的一个经典案例。今天我们就一起来探究一下吧
    2021-06-06
  • SpringCloud的Eureka模块详解

    SpringCloud的Eureka模块详解

    这篇文章主要介绍了SpringCloud的Eureka模块详解,Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务治理,就是提供了微服务架构中各微服务实例的快速上线或下线且保持各服务能正常通信的能力的方案总称,需要的朋友可以参考下
    2023-07-07
  • IDEA中配置文件模板的添加方法

    IDEA中配置文件模板的添加方法

    这篇文章主要介绍了IDEA中配置文件模板的添加方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • 关于SpringBoot使用@ExceptionHandler注解局部异常处理

    关于SpringBoot使用@ExceptionHandler注解局部异常处理

    这篇文章主要介绍了关于SpringBoot使用@ExceptionHandler注解局部异常处理,SpringBoot提供了多种方式来处理异常,在本文中,我们将介绍SpringBoot中的@ExceptionHandler注解,演示如何使用它进行局部异常处理
    2023-07-07
  • Java中Date和LocalDate区别与介绍

    Java中Date和LocalDate区别与介绍

    本文主要介绍了Java中Date和LocalDate区别与介绍,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • JavaWeb如何实现禁用浏览器缓存

    JavaWeb如何实现禁用浏览器缓存

    这篇文章主要介绍了JavaWeb如何实现禁用浏览器缓存,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Java垃圾回收之复制算法详解

    Java垃圾回收之复制算法详解

    今天小编就为大家分享一篇关于Java垃圾回收之复制算法详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • MybatisPlus中selectPage的使用方法

    MybatisPlus中selectPage的使用方法

    本文主要介绍了MybatisPlus中selectPage的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • Java 使用 Graphql 搭建查询服务详解

    Java 使用 Graphql 搭建查询服务详解

    这篇文章主要介绍了Java 使用 Graphql 搭建查询服务详解的相关资料,需要的朋友可以参考下
    2016-12-12

最新评论