一、SpringBoot 快速构建 REST 接口
1.1 什么是 SpringBoot?
Spring Boot 是基于 Spring 框架的快速开发脚手架,通过约定优于配置的理念,极大简化了 Spring 应用的初始搭建和开发流程。开发者无需繁琐的 XML 配置,即可快速启动一个生产级别的 Web 应用。
1.2 编写一个 Login 接口
下面以一个最简单的用户登录接口为例,演示 SpringBoot 如何处理 HTTP POST 请求。
接口说明
| 属性 | 值 |
|---|---|
| 请求方式 | POST |
| 接口路径 | /login |
| 请求参数 | username、password |
| 返回值 | String |
代码实现
@RequestMapping(value = "/login", method = RequestMethod.POST) public String login(@RequestParam("username") String username, @RequestParam("password") String password) { System.out.println("username: " + username + " password: " + password); return ""; }
关键注解说明
@RequestMapping:用于映射 HTTP 请求路径与方法。value指定路由路径,method指定请求方式(此处为POST)。@RequestParam:用于绑定 HTTP 请求中的表单参数或 Query 参数到方法入参。username和password会从请求体(application/x-www-form-urlencoded)或 URL 参数中自动提取。
测试接口
可以使用curl或 Postman 对接口进行测试:
curl -X POST http://localhost:8080/login \ -d "username=admin&password=123456"
控制台将输出:
username: admin password: 123456
注意:实际生产环境中,密码不应以明文传输,应使用 HTTPS 加密,并对密码进行哈希(如 BCrypt)处理后再做比对。
二、Docker 容器化部署 SpringBoot 应用
将 SpringBoot 应用打包进 Docker 镜像,可以实现环境一致性,避免"本地能跑、线上报错"的经典问题,也是现代多人协作项目中的标准化部署方式。
2.1 前置准备
在构建 Docker 镜像之前,需要先将 SpringBoot 项目打包为可执行 JAR 文件:
mvn clean package -DskipTests
打包成功后,JAR 文件默认生成于target/目录下,例如:
target/gs-spring-boot-0.1.0.jar
2.2 编写 Dockerfile
在项目根目录下创建Dockerfile文件:
# 使用带有 JDK 8 的轻量级 Alpine 基础镜像 FROM java:8u111-jdk-alpine # 设置容器内的工作目录 WORKDIR /app # 将打包好的 JAR 文件复制到容器的工作目录中 COPY target/gs-spring-boot-0.1.0.jar . # 声明容器对外暴露的端口 EXPOSE 8080 # 容器启动时执行的命令 CMD ["java", "-jar", "gs-spring-boot-0.1.0.jar"]
Dockerfile 指令说明
| 指令 | 作用 |
|---|---|
FROM | 指定基础镜像。java:8u111-jdk-alpine是基于 Alpine Linux 的 JDK 8 镜像,体积小巧。 |
WORKDIR | 设置后续指令的工作目录,若目录不存在会自动创建。 |
COPY | 将宿主机文件复制到镜像内指定路径。 |
EXPOSE | 声明容器运行时监听的端口(仅为文档说明,不自动映射端口)。 |
CMD | 指定容器启动后执行的默认命令,这里启动 SpringBoot 应用。 |
2.3 构建 Docker 镜像
在项目根目录下(即 Dockerfile 所在目录),执行以下命令构建镜像:
docker build . -t demo-app
.:指定构建上下文为当前目录。-t demo-app:为镜像打上标签,命名为demo-app。
构建成功后,可通过以下命令验证镜像是否存在:
docker images | grep demo-app
2.4 运行 Docker 容器
docker run -p 80:8080 -it demo-app
参数说明
| 参数 | 说明 |
|---|---|
-p 80:8080 | 端口映射,将宿主机的80端口映射到容器的8080端口。访问http://localhost/login即可触达应用。 |
-it | 以交互模式运行容器,并分配伪终端,方便查看控制台日志输出。 |
demo-app | 指定要运行的镜像名称。 |
启动成功后,通过浏览器或curl访问:
curl -X POST http://localhost/login \ -d "username=admin&password=123456"
2.5 完整部署流程总结
① mvn clean package # 打包 SpringBoot 应用为 JAR ↓ ② 编写 Dockerfile # 定义镜像构建规则 ↓ ③ docker build . -t demo-app # 构建镜像 ↓ ④ docker run -p 80:8080 -it demo-app # 启动容器 ↓ ⑤ 访问 http://localhost/login # 验证服务
三、小结
本节课通过一个简单的登录接口,完整演示了从SpringBoot 接口开发到Docker 容器化部署的全流程:
- 使用
@RequestMapping+@RequestParam快速定义 POST 接口,接收前端传参。 - 编写
Dockerfile,基于轻量 Alpine 镜像封装应用。 - 通过
docker build构建镜像,docker run启动服务,完成本地容器化部署。
掌握这一基础流程,是后续进行多人协作平台开发、CI/CD 流水线集成的重要基础。