You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tomcat部署两个Spring应用的ApplicationContext与Servlet路径疑问

Tomcat下多Spring应用部署问题解答

部署场景

已在Tomcat的webapps目录中部署两个Spring应用,访问地址如下:

  • http://server.com/app1
  • http://server.com/app2
    客户端请求通过URL中的上下文路径(app1/app2)路由至对应应用。

用户疑问

  1. 两个应用的ApplicationContext是否不同?
  2. 通过ServletRequestContext获取ApplicationContext时,会得到一个还是多个?
  3. 上述两个应用的Servlet路径分别是什么?

个人理解校验

你的部分理解存在偏差,逐一核对:

  • ❌ 错误:二者无法在同一Tomcat的同一端口运行 → 实际完全支持同一Tomcat同一端口运行,Tomcat通过上下文路径区分不同应用
  • ✅ 正确:两个应用各自拥有独立的ApplicationContext
  • ✅ 正确:二者是完全独立的应用
  • ✅ 正确:分别拥有独立的IOC容器
  • ✅ 正确:只要Tomcat未终止,其中一个应用宕机不影响另一个正常运行

疑问解答

  1. 两个应用的ApplicationContext是否不同?
    是的,完全不同。每个部署在Tomcat webapps下的应用都是独立的Web应用实例,Spring会为每个应用单独初始化专属的ApplicationContext,彼此之间相互隔离,没有共享或依赖关系。

  2. 通过ServletRequestContext获取ApplicationContext时,会得到一个还是多个?
    只能获取当前请求所属应用的ApplicationContext。ServletRequestContext与当前请求绑定,请求被路由到哪个应用,就只能拿到该应用的上下文,无法访问另一个应用的ApplicationContext。

  3. 上述两个应用的Servlet路径分别是什么?

  • app1的上下文路径为/app1,如果应用内的DispatcherServlet映射路径为/,那么完整访问路径中/app1是上下文路径,后续的/xxx是Servlet的具体映射路径。
  • app2的上下文路径为/app2,逻辑与app1一致。

内容的提问来源于stack exchange,提问作者Tech Lover

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 22:25:25