java - 当前开发/打包/分发(大型)Java(Web)应用程序的方式有什么问题?

标签 java web-applications architecture jar osgi

<分区>

有很多应用程序正在转向 osgi。互联网上有很多 Material 都在谈论使用 OSGi 的好处。但是我看不到当前使用非 OSGi(旧方法)构建/分发大型 Java Web 应用程序的方式存在的问题。有人能

  • 首先概述了开发、打包和分发大型 Java Web 应用程序的非 OSGi 和 OSGi 方法。
  • 其次指出与非OSGi方式相关的问题?
  • 第三,转向 OSGi 将如何解决这些问题。也许还可以给出具体的例子和引用资源。

最佳答案

“当前”方式是 WAR 文件,它们是无共享的。如果你有三个 web 应用程序并且它们都使用 commons-lang,你必须部署同一个 jar 文件的三个副本 (你可能是对的,因为这对大多数人来说不是真正的问题)。

除此之外,OSGi 部署的是包,而不是应用程序。这允许在运行时升级或激活应用程序的各个部分。不过,不确定这对很多人来说是否重要。事实上,缺少“应用程序粒度”导致大量“可移动部分”以构成应用程序的所有 bundle 的形式可见。这让部署人员感到困惑。 OSGi 正在努力解决这个问题。

最后,在 OSGi 中,“容器”功能通常也是“应用程序” bundle 集的一部分(而不是像 JBoss 那样与应用程序代码明显分开的黑盒)。带上你自己的容器。非常灵活,但又让部署人员感到困惑。

关于java - 当前开发/打包/分发(大型)Java(Web)应用程序的方式有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7256160/

相关文章:

javascript - 重定向到自定义 DNS

sql-server - 如何回滚已经提交的事务?

c# - StructureMap 和通过带有接口(interface)的构造函数进行延迟初始化

java - 如何将字符串拆分为固定长度的 block ,但不在单词之间?

java - JLabel 的图标属性未显示在 Netbeans Apache 11 的属性选项板中

video - 网络应用程序应提供哪种视频格式?

ruby-on-rails - 干净和 n 层架构之间有什么区别?

architecture - 使用单独的架构/数据库方法管理 Multi-Tenancy 连接池

java - Paypal Sandbox 支付状态未决

java - 在 SPring Boot 2.1.1 中扩展 GlobalMethodSecurityConfiguration 时出现错误,指出已定义 "methodSecurityInterceptor"