我有一个现有的 Java 应用程序(基于 Spring),它目前没有 Web 界面,也没有在 Web 容器中运行。它与启动程序很好地打包在一起,并且可以正常工作。
我需要做的是为一些管理类型的东西添加一个管理 Web 界面,检索实时指标,也许还有一些图表,让用户有一种温暖的模糊感觉,知道一切正常。由于我们是一家 Spring 商店,并且我们的一些 Web 应用程序已经使用 Spring MVC,它只对我们有意义,但是,我对内部 Spring 人员关于我应该如何进行的建议并不满意。
使用此 Web 界面的理想方式是什么?
- 将我的应用程序转换为 Web 应用程序并让 Web 容器启动该应用程序。我不太喜欢这种方法,因为 Web 层实际上是次要应用程序。
- 创建一个单独的项目,将其打包为战争,将 Jetty 嵌入到我现有的应用程序中并让它加载战争。我想我可以使用上下文加载器侦听器使我的应用程序的根上下文成为 Web 应用程序 spring 上下文的父级。这将涉及将我的 Maven 项目分解为我认为的 2 个项目。我无法使用现有的 Web 技术在 Web 层和主应用程序之间进行通信,因为我的主应用程序没有启用 Web。
- 嵌入 Jetty 并将 Spring MVC 的东西直接放在我的应用程序中。虽然我以前做过这种方法,但它确实涉及一些丑陋 - 例如将 JSP 标记库爆炸到我的 jar 中。
对这里的一些干净分离有什么想法吗?
另外值得注意的是,我当前的 jar 包含一些实用程序应用程序,一些 shell 脚本会启动这些应用程序。走纯 WAR 路线会使这变得不那么容易,因为我不能将 java 指向我的 war 文件并选择要执行的类。
谢谢。