你敢想。看了介绍,我直接下载了jdk21+mvn39,耗时5分钟。这网速。
docker pull maven:3.9-amazoncorretto-21



嗯,当然还缺点什么,比如mysql,redis,nginx(可选).

于是我得到了一个docker file.
services:
mysql:
image: mysql:8.0-debian
container_name: sdk3921-mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: root123456
MYSQL_DATABASE: sdk3921
MYSQL_USER: dev
MYSQL_PASSWORD: dev123456
volumes:
- ./data/mysql:/var/lib/mysql
networks:
- sdk3921-network
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 5s
timeout: 5s
retries: 10
redis:
image: redis:latest
container_name: sdk3921-redis
restart: unless-stopped
command: redis-server --appendonly yes
volumes:
- ./data/redis:/data
networks:
- sdk3921-network
app:
image: maven:3.9-amazoncorretto-21
container_name: sdk3921-app
restart: unless-stopped
working_dir: /project
volumes:
- ./springboot-app:/project
- ./maven-settings.xml:/root/.m2/settings.xml
depends_on:
mysql:
condition: service_healthy
redis:
condition: service_started
networks:
- sdk3921-network
command: sleep infinity
networks:
sdk3921-network:
driver: bridge
当然你需要准备几个文件夹空的。

<settings>
<mirrors>
<mirror>
<id>aliyunmaven</id>
<url>https://maven.aliyun.com/repository/public</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
</settings>


复制SpringBoot4 pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>4.1.0</version>
</parent>
<groupId>com.example</groupId>
<artifactId>myproject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webmvc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>


加了mvc后,你可以看到jackson到4.1了,这是springboot4的改动之一。另外还有tomcat
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webmvc</artifactId>
</dependency>
</dependencies>

接下来我们来个启动类:
package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@SpringBootApplication
public class MyApplication {
@RequestMapping("/")
String home() {
return "Hello World!";
}
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
mvn spring-boot:run

打包你就用 mvn package,执行就$ jar tvf target/myproject-0.0.1-SNAPSHOT.jar
java -jar target/myproject-0.0.1-SNAPSHOT.jar

我的技术帖子都不设vip.源码碍于平台规则也only设置1积分。