Spring Boot3.x快速入门
2024-12-11 09:27 阅读(224)

自spring boot 3.0的正式发布已经有两年多了,目前越来越多的企业项目使用spring boot的版本也从2.x升级到3.x,如果你还不会的话,就跟着小卷,从头开始搭建spring boot 3.x的开发环境吧。

环境准备

jdk17+

确保本地安装了jdk17或者以上版本。

gradle8+

本地不用装gradle,基于gradle生成的spring boot脚手架工程中使用的gradle-wrapper模块可以自动完成gradle的下载和安装。

如果默认下载地址慢,可以修改gradle/wrapper/gradle-wrapper.properties地址为:

distributionUrl=https://mirrors.cloud.tencent.com/gradle/gradle-8.11.1-bin.zip

对本地gradle环境进行全局配置:


环境变量:GRADLE_USER_HOME:D:\Programs\Gradle.gradle


该路径为本地gradle缓存路径,在其中放两个配置文件:


gradle.properties,设置运行参数。

# 设置gradle工作时使用的jvm最大堆内存
org.gradle.jvmargs=-Xmx2048M
# 可选配置:all,none,summary,用来设置gradle构建时控制台输出警告信息的模式,all为打印所有警告信息,summary为只打印概要信息,none为不输出警告信息,因为警告并不影响gradle构建成功,因此这里我们把它屏蔽掉。
org.gradle.warning.mode=none

init.gradle,设置全局仓库


    allprojects {
        // 项目中依赖和基本插件的下载仓库定义,注意访问顺序
        repositories {
            mavenLocal()
            // 配置国内阿里仓库以加速访问
            maven { url 'https://maven.aliyun.com/repository/public' }
            maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
            maven { url 'https://maven.aliyun.com/repository/spring' }
            maven { url 'https://maven.aliyun.com/repository/spring-plugin' }
            mavenCentral()
        }
        // 在使用一些第三方插件、编写任务构建脚本和引入第三方类库时,对构建脚本中需要用到的仓库定义会全局生效
        buildscript {
            repositories {
                mavenLocal()
                maven { url 'https://maven.aliyun.com/repository/public' }
                maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
                maven { url 'https://maven.aliyun.com/repository/spring' }
                maven { url 'https://maven.aliyun.com/repository/spring-plugin' }
                mavenCentral()
            }
        }
    }

创建spring boot工程

创建向导

选取必备的几个依赖,点创建:


自动完成构建

开发环境设置

打开idea的gradle设置,运行选项都改为idea的运行环境。

编译启用注解处理

自动导入类型

快速开发rest接口

快速开发一个hello world的rest服务。

    package com.juan.springboot.demo;
    ​
    import ...
    ​
    // 为简化api开发,索性在启动类上启用rest控制器
    @RestController
    ...
    public class DemoApplication {
    ​
        @RequestMapping("hello")
        public Map<String, Object> hello() {
            return Map.of("msg", "Hello, Spring Boot 3!!");
        }
    ​
        ...
    ​
    }

创建一个测试文件,启动服务,测试下:

测试文件内容:


    ### 测试hello服务
    GET http://localhost:8080/hello

yml配置

配置端口号

    server:
      port: 8083
    spring:
      application:
        name: demo

配置热启动参数

    spring:
      ...
      devtools:
        restart:
          # 轮询检测类路径上文件变更的周期,默认为1s
          poll-interval: 2s
          # 在热重启之前对类路径上没有任何变更保持的静默时间,默认为400ms
          quiet-period: 1s

如果不希望每次idea窗口失去焦点,都要重新编译热启动,可以设置为什么都不做,通过Ctrl+B手动构建后,再热更新。


项目打包

要跳过test,可以用命令终端在项目路径下运行:

./gradlew clean build -x test

或者:

对生成的可执行jar包,可以配置gradle任务来运行本地可执行jar:


build.gradle:

    tasks.register('runBootJar', JavaExec) {
        classpath = files('build/libs/demo-0.0.1-SNAPSHOT.jar')
    }

双击运行

用gradle任务来运行程序不太完美的是,点关闭按钮,任务会以报错结束。