Java Web 体系架构

Java Web 应用以 jar 包或 war 包形式部署,依赖 Tomcat(内置或外置)作为 Web 容器运行。Spring Boot 通过内置 Tomcat 实现了”一键部署”。

核心概念

jar包 vs war包

格式内容运行方式适用场景
jar包业务逻辑 + 依赖库 + 内置 Tomcatjava -jar xxx.jarSpring 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)PHPPythonGo
应用服务器内置/外置 TomcatPHP-FPMuWSGI/Daphne自带 HTTP 服务
Nginx 转发proxy_passfastcgi_passuwsgi_pass/proxy_passproxy_pass
部署包jar/warPHP 源码WSGI 应用编译后二进制
进程管理systemd/SupervisorPHP-FPM 自带uWSGI master/SupervisorSupervisor

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"/>

相关页面