课程

1天搞定SpringBoot+Vue全栈开发 | 刘老师教编程 | 哔哩哔哩

环境

JDK1.8 + Maven + IDEA

新建 SpringBoot 项目

注意 Spring3.0 及 Spring3.0+ 最低支持 JDK17, 如果想要创建 Java8 的项目, 在新建 Spring 项目的时候需要设置 Spring Boot 的版本为 3.0 以下.

对于已经创建好的项目, 需要在 Pom.xml 中修改 Spring 的版本为 2.0+, 以及修改对应的 Java 版本为 1.8, 然后在右侧栏的 Maven 中点击 Reload All Maven Projects.

1
2
3
4
5
6
7
8
9
10
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.2</version> <!--在这里修改 SpringBoot 的版本-->
<relativePath/>
</parent>
...
<properties>
<java.version>1.8</java.version> <!--在这里修改 Java 的版本-->
</properties>

Note: 刘老师课程中使用的 SpringBoot 的版本为 2.7.2

常见问题及处理

  • 右键 New 没有 Java Class 选项
    此时可能是 Maven 还没有加载成功, 重新导入一下 Maven 即可.
    或者在 Files > Project Structure > Project Settings > Module 中右键 src 目录点击 Sources, 将 src 目录及其子目录设为源码目录.

  • 报错 java: 警告: 源发行版 17 需要目标发行版 17
    这是由于 Spring Boot 与 Java 版本不匹配导致的. 由于你在新建项目的时候选的 Spring Boot 的版本为 3.0+ (默认3.0+), 上面提到过 Spring3.0+ 最低支持 JDK17, 所以 Maven 自动为该项目的 Java 设置了 17 的版本 (即便你在创建项目的时候选择了 JDK1.8 和 Java8), 而你的电脑是没有安装 JDK17 的所以产生这个报错. 需要在 Pom.xml 配置文件中修改 Spring Boot 和 Java 的版本.

    Note:
    在 Files > Settings > Build,Execution,Deployment > Compile > Java Compiler 中,
    以及在 Files > Project Structure > Project Settings > Module > Language Level 中,
    直接修改 Module 的 Java 版本是不可以解决这个问题的. 它会给提示:
    ⚠️ Module 'ProjectName' is imported from Maven. Any changes made in its configuration might be lost after reimporting.
    重新导入 Maven 配置后, 这些更改的设置会被重置, 并且编译依旧会报错.

第一个 Spring Boot 项目

新建项目, 在 Generators 中选择 Spring Initializr, 项目的一些初始化设置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
Name: HelloSpringBoot
Location: ~\Desktop\code\Java
Language: Java
Type: Maven //注意类型选 Maven
Group: com.example
Artifact: HelloSpringBoot
Package name: com.example.hellospringboot
JDK: 1.8 //注意版本
Java: 8 //注意版本
Packaging: Jar
// Next
Spring Boot: 2.7.12 //注意版本不能是3.0+
Dependencies: > Web > Spring Web

在 src > main > java > com.example.hellospringboot 目录上右键选择 New > Package, 命名 controller, 再右键 controller 选择 New > Java Class, 命名 HelloController 在其中输入

1
2
3
4
5
6
7
8
9
10
11
12
13
package com.example.hellospringboot.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
// http://localhost:8080/hello
@GetMapping("/hello")
public String hello(){
return "Hello, Spring Boot!";
}
}

打开 src > main > java > com.example.hellospringboot > HelloSpringBootApplication.java, 点击右上角的 Run, 如果正常运行 Console 中会出现下面的文字图案, 并返回 Spring Boot 的版本

1
2
3
4
5
6
7
  .   ____          _            __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.7.2)

此时在浏览器地址栏中输入 http://localhost:8080/hello 即可看到返回页面的内容 Hello, Spring Boot!.

热环境部署

热部署, 即修改代码后自动重新编译和部署网页, 便于调试.
借助 Spring Boot 提供的 spring-boot-devtools 组件, 可以实现热部署. devtools 组件会监听 classpath 下的文件变动, 触发 Restart 类加载器重新加载该类, 从而实现类文件和属性文件的热部署.
并不是所有的更改都需要重启应用 (如静态资源, 视图模板等), 只有 Java 类变了才需要重启应用. 可以通过设置 spring.devtools.restart.exclude 属性来指定一些文件或目录的修改不用重启应用.

配置热环境

  • 添加 devtools 依赖
    在项目 pom.xml 的 <dependencies>...</dependencies> 间插入依赖

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <dependencies>
    ...
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
    </dependency>
    ...
    </dependencies>

    然后点击 Maven 小窗口的 Load Maven Changes (快捷键 Ctrl+Shift+O) 加载添加的依赖. 加载完成后可以在侧栏 Maven 项目目录下的 Dependencies 中看到 spring-boot-devtools

  • 配置 devtools 依赖
    在 src > main > resources > application.properties 中添加下面的设置 (课程中只添加了前两条, 没有设置排除目录)

    1
    2
    3
    4
    5
    6
    # 开启 restart
    spring.devtools.restart.enbaled=true
    # 设置重启目录
    spring.devtools.restart.additional-paths=src/main/java
    # 设置排除目录
    spring.devtools.restart.exclude=static/**
  • 设置 IDEA 项目自动编译

    • Files > Settings > Build,Execution,Deployment > Compile, 勾选 Build project automatically

    • Files > Settings > Advanced Settings, 勾选 Allow auto-make to start even if developed application is currently running

当上面的配置全都做完后, 重新修改代码将会自动重新编译和部署, 我们只需要在浏览器端刷新页面即可看到修改后的结果.

MybatisPlus

使用 Mybatis/MybatisPlus 之前需要先安装 MySQL

在 IDEA 中新建一个 Spring Boot 项目 (配置同上). 在 pom.xml 配置文件中添加依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!-- MyBatisPlus依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<!-- mysql驱动依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!-- 数据连接池 druid-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.20</version>
</dependency>

刷新一下 Maven.
然后在 src > main > resources > application.properties 中添加下面的设置

1
2
3
4
5
6
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useSSL=false
spring.datasource.username=root
spring.datasource.password=root
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl