Java Web 体系架构
Java Web 应用以 jar 包或 war 包形式部署,依赖 Tomcat(内置或外置)作为 Web 容器运行。Spring Boot 通过内置 Tomcat 实现了”一键部署”。
核心概念
jar包 vs war包
| 格式 | 内容 | 运行方式 | 适用场景 |
|---|---|---|---|
| jar包 | 业务逻辑 + 依赖库 + 内置 Tomcat | java -jar xxx.jar | Spring Boot 最推荐方式 |
| war包 | 业务逻辑 + 依赖库 + web 配置 | 放入 Tomcat webapps/ 目录 | 需外置 Web 容器、传统运维环境 |
Maven 构建工具
Maven 是 Java 项目的构建工具,通过 pom.xml 管理依赖和打包:
mvn clean package -Dmaven.test.skip=true # 清理并打包,跳过测试pom.xml 中的 <packaging>jar</packaging> 或 <packaging>war</packaging> 控制输出格式。
Spring Boot 部署流程
jar 包方式(推荐)
JDK 1.8 → Maven → MySQL 5.7 → 拉取源码 → 修改数据库配置
→ 初始化数据库 → mvn clean package → java -jar ruoyi-admin.jar
- 内置 Tomcat,无需额外安装 Web 容器
- 部署简单,一个
java -jar命令即可启动 - 适合微服务、容器化部署
war 包方式
修改 pom.xml(packaging=war + 排除内置 Tomcat)
→ mvn clean package → 安装独立 Tomcat
→ 将 war 包放入 webapps/ → Tomcat 自动解压部署
- 需安装独立的 Tomcat 容器
- 适合多应用共享 Tomcat、传统运维环境
- 可精细控制 Tomcat 配置(server.xml)
Nginx 反向代理 Tomcat
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}架构对比
| 对比项 | Java(Spring Boot) | PHP | Python | Go |
|---|---|---|---|---|
| 应用服务器 | 内置/外置 Tomcat | PHP-FPM | uWSGI/Daphne | 自带 HTTP 服务 |
| Nginx 转发 | proxy_pass | fastcgi_pass | uwsgi_pass/proxy_pass | proxy_pass |
| 部署包 | jar/war | PHP 源码 | WSGI 应用 | 编译后二进制 |
| 进程管理 | systemd/Supervisor | PHP-FPM 自带 | uWSGI master/Supervisor | Supervisor |
Tomcat 配置要点
核心配置文件 server.xml:
<!-- 连接器:端口 / 协议 / 线程数 -->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
maxThreads="200"/>
<!-- 虚拟主机:多域名托管 -->
<Host name="www.egon1.com" appBase="/usr/local/tomcat/webapps"
unpackWARs="true" autoDeploy="true"/>相关页面
- Tomcat — Java Web 容器核心实体
- Nginx — proxy_pass 反向代理
- PHP 体系架构 — 与 Java 部署对比
- Python 体系架构 — 与 Java 部署对比
- Go 程序部署 — 与 Java 部署对比
- 架构对比总结 — 四语言部署对比
- Java Web 部署资料摘要