我用docker创建了一个springboot4项目

你敢想。看了介绍,我直接下载了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积分。

最后附上源码:https://download.csdn.net/download/ldy889/93265518

相关推荐
miaobinfei2 小时前
docker拉取dify镜像,执行docker compose up -d 报错
运维·docker·容器
kobe_OKOK_3 小时前
docker compose命名卷 映射到宿主机的路径
运维·docker·容器
Elastic 中国社区官方博客7 小时前
AgentHack Shanghai|基于阿里云AI搜索 Elasticsearch x Qoder 构建AI Agent应用
大数据·人工智能·elasticsearch·搜索引擎·阿里云·云计算·全文检索
晨陌y7 小时前
Flare自托管导航页教程:Docker部署、多用户、API与公网访问
运维·docker·容器
梅孔立10 小时前
Docker 容器网络不通:Tomcat 无法解析 MySQL、Nginx 无法反代 Tomcat 的生产级排查与治理
网络·docker·tomcat
螺蛳粉 螺蛳粉19 小时前
第 05 篇:etcd 深入:Raft 共识、watch 机制与快照备份恢复实战(底座认知 05)
docker·云原生·容器·kubernetes·etcd·分布式存储·kube-apiserver
PellyKoo1 天前
【docker】cifs卷改smb密码后容器起不来的解决方法
运维·docker·容器
时早玖沐1 天前
放弃 QQ 官方机器人:用 SnowLuma + AstrBot 自建 QQ 机器人
docker·开源·agent
阿标在干嘛1 天前
容器编排的“场景适配”:我们为什么在部分服务中回归了Docker Compose?
运维·docker·容器
IT19951 天前
Docker 快速部署 DM8 达梦数据库|完整踩坑笔记
笔记·docker·容器