环境搭建:
-
Java开发工具包 (JDK)
软件:JDK11
推荐版本: JDK11
安装说明:选择适合您操作系统的版本,安装后配置JAVA_HOME环境变量 -
集成开发环境 (IDE)
主IDE:IntelliJ IDEA (社区版免费)
备选:Eclipse IDE
一、WSL(Windows Subsystem for Linux)
1、下载WSL
wsl官网介绍:适用于 Linux 的 Windows 子系统 (WSL) 是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双引导。
方法一: 官网 wsl安装(点击即可),可能需科学上网
## 查看可安装的版本
wsl --list --online
C:\Windows\system32>wsl --list --online
以下是可安装的有效分发的列表。
使用 'wsl.exe --install <Distro>' 安装。
NAME FRIENDLY NAME
AlmaLinux-8 AlmaLinux OS 8
AlmaLinux-9 AlmaLinux OS 9
AlmaLinux-Kitten-10 AlmaLinux OS Kitten 10
Debian Debian GNU/Linux
FedoraLinux-42 Fedora Linux 42
SUSE-Linux-Enterprise-15-SP5 SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-15-SP6 SUSE Linux Enterprise 15 SP6
Ubuntu Ubuntu
Ubuntu-24.04 Ubuntu 24.04 LTS
archlinux Arch Linux
kali-linux Kali Linux Rolling
openSUSE-Tumbleweed openSUSE Tumbleweed
openSUSE-Leap-15.6 openSUSE Leap 15.6
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
OracleLinux_7_9 Oracle Linux 7.9
OracleLinux_8_7 Oracle Linux 8.7
OracleLinux_9_1 Oracle Linux 9.1
## 安装
wsl --install 或者指定版本 wsl --install -d <Distribution Name>
方法二: 打开微软商店,搜索ubuntu,点击获取,无需科学上网即可安装下载
2、查看已安装的WSL版本
wsl -l -v
结果:
NAME STATE VERSION
* Ubuntu-22.04 Stopped 2
将版本从 WSL 1 升级到 WSL 2
使用 wsl --install 命令安装的新 Linux 安装将默认设置为 WSL 2。
命令可用于从 WSL 2 降级到 WSL 1,或将以前安装的 Linux 发行版从 WSL 1 更新到 WSL 2。
wsl --set-version
二、Web 应用程序(以Spring boot为例)
1、安装idea社区版 官网
2、下载spring Web压缩包
1、打开 spring.io 快速新建spring Web项目
2、下载
点击 “生成” 按钮,下载 zip 文件,使用idea打开项目
增加一个简单的web网页交互
package com.example.javademoWeb;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class JavademoWebApplication {
public static void main(String[] args) {
SpringApplication.run(JavademoWebApplication.class, args);
}
@GetMapping("/hello")
public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
return String.format("Hello %s!", name);
}
}
我们添加的方法旨在采用一个名为 name 的 String 参数,然后将此参数与代码中的单词组合在一起。这意味着,如果您在请求中将 name 设置为 ,则响应将为 “Hello Amy”。hello()“Hello”“Amy”
该注释告诉 Spring 此代码描述了一个应该在 Web 上可用的端点。它告诉 Spring 使用我们的方法来回答发送到该地址的请求。最后,它告诉 Spring 在请求中期望一个 name 值,但如果它不存在,它将默认使用这个词。
3、运行截图
点击idea中右上角的小绿标,运行
打开浏览器,输入
http://localhost:8080/hello?name=张三
至此web项目demo访问成功。
三、安装 docker
在 WSL 中安装 Docker,并配置 Docker 服务。通过 Docker 客户端验证安装是否成功,并确保 Docker 能够正常运行。
1、配置 Docker 环境
# 检查WSL和Docker状态
wsl --list -v
docker --version
docker-compose --version
2、部署 Web 应用程序
在idea中的应用程序目录大致如下:
your-project/
├── src/
├── pom.xml 或 build.gradle
├── Dockerfile
└── docker-compose.yml (可选)
- 修改数据库配置
将application.properties或application.yml中的数据库连接改为Docker环境配置:
生产环境配置 (src/main/resources/application-prod.properties)
spring.datasource.url=jdbc:mysql://mysql-db:3306/yourdb?useSSL=false
spring.datasource.username=dbuser
spring.datasource.password=dbpass
spring.jpa.hibernate.ddl-auto=update
- Dockerfile
# 构建阶段
FROM maven:3.8.6-openjdk-11 AS build
WORKDIR /workspace
COPY pom.xml .
# 先只复制pom文件,利用Docker缓存层
RUN mvn dependency:go-offline
COPY src src
# 打包应用
RUN mvn package -DskipTests
# 最终阶段
FROM openjdk:11-jre-slim
WORKDIR /app
# 从构建阶段复制jar文件
COPY --from=build /workspace/target/*.jar app.jar
# 时区设置(可选)
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 暴露端口
EXPOSE 8080
# 启动命令
ENTRYPOINT ["java", "-jar", "app.jar", "--spring.profiles.active=prod"]
docker-compose.yml (推荐)
version: '3.8'
services:
app:
build: .
ports:
- "8080:8080"
environment:
- SPRING_PROFILES_ACTIVE=prod
depends_on:
- mysql-db
restart: unless-stopped
networks:
- app-network
mysql-db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: yourdb
MYSQL_USER: dbuser
MYSQL_PASSWORD: dbpass
volumes:
- mysql-data:/var/lib/mysql
ports:
- "3306:3306"
networks:
- app-network
restart: unless-stopped
volumes:
mysql-data:
networks:
app-network:
driver: bridge
注意
一 定 要 注 意 jdk 的 版 本 和 spring boot 的 版 本 相 对 应 ,
3、运行访问
- 在Windows端构建项目
cd your-project-path
清理并打包项目(跳过测试)
mvn clean package -DskipTests
- 将项目文件传输到WSL
在WSL中创建项目目录
wsl -d Ubuntu-22.04 -- bash -c "mkdir -p ~/docker-projects/your-project"
复制整个项目到WSL(保留文件权限)
Copy-Item -Path ".\*" -Destination "\\wsl$\Ubuntu-22.04\home\$env:USERNAME/docker-projects/your-project" -Recurse
- 在WSL中构建和运行Docker容器
进入WSL终端
wsl -d Ubuntu-22.04
进入项目目录
cd ~/docker-projects/your-project
构建并启动容器(使用docker-compose)
docker-compose up --build -d
查看日志确认启动情况
docker-compose logs -f app
至此,可以在本地浏览器中访问
http://localhost:8080
我的效果如图,可正常访问: