自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任务来运行程序不太完美的是,点关闭按钮,任务会以报错结束。