OSGI , SpringSource , Jboss模块 ,J2EE和清单永远不会结束。所有这些技术都向他们的最终用户/开发人员保证了相同的东西,或多或少是Java模块化Web应用程序(?)。 但是,我们当中有多少人实际上已经尝试过用Java开发REAL模块化软件系统? 我们中有多少人设法做到了? 您可能已经注意到,我已经将“真实”一词大写,但这并非偶然。 我将简要解释我的定义是什么:“真正的模块化Java系统”。

恕我直言,REAL软件模块至少应具有用于业务逻辑,持久性,用户界面和配置的部件。 在理想情况下,软件模块应该能够在运行的应用程序中轻松插入和拔出,而无需重新启动它。 例如,在J2EE应用程序服务器(例如Jboss或GlassFish)中,正在运行的应用程序(核心系统)是.war文件。 开发了核心系统的其他一些模块(包含上述部分),并将其打包在单独的jar文件中。 这些jar文件应该部署在应用服务器中,并与核心系统集成(通过业务逻辑和用户界面中的某些扩展点),而无需重新部署它。 我们可以做这样的事情吗?

让我们看看相关技术对此有何建议。 自从JBoss Modules迈出第一步以来,我一直是它的粉丝,而在最近发布的JBoss AS最新版本之后,我希望看到它们的实际应用。 说实话,JBoss模块提供了一种非常简单方便的方法来定义模块之间的依赖关系。 糟糕! 我写了“模块”吗? 这些是什么样的模块? 它们可以包括业务逻辑,配置,数据模型,但是用户界面呢? 不幸的是,没有任何提及,经过一番研究,我发现JBoss模块中的模块化概念不包含任何用户界面。

OSGI呢? 构建模块化应用程序的最有前途的方式。 如今, OSGI已获得许多应用程序服务器的支持,尽管其配置看起来像是工业革命时代的恐龙,但它似乎是一种非常不错的方法。 大量可用的服务,使用的许多框架,当然也没有引用任何用户界面功能。 另一方面,正如相关文章所暗示的, Vaadin与OSGI很好地集成(?)以构建模块化的Web应用程序。 我想知道是否有使用OSGI和Vaadin开发的真实/生产性模块化企业应用程序。

Spring是SpringSource的独立框架, SpringSource目前是开发Java企业应用程序的领导者。 与OSGI结合使用的Spring动态模块被认为是构建动态和模块化Web应用程序的最复杂的方法,但是我仍然感到即使Spring也无法解决我提出的问题。 根据我的研究经验,将上述技术集成到模块化系统中是一项艰巨的任务。

最后但并非最不重要的是J2EE。 Web的最新版本和完整的配置文件规范已将J2EE转换为非常强大的框架集。 JSF2和CDI以及所有新功能极大地提高了它在Java开发人员中的知名度。 当我第一次阅读本文时 ,我相信最终我找到了模块化Web应用程序的标准解决方案。 尽管每个jar可以包含所有不同的部分:使用EJB和CDI的业务逻辑,使用JPA及其实现的持久性,使用JSF及其实现的配置和用户界面),根据此问题 ,无法将带有JSF组件的jar作为单独的组件来处理模块。 再一次失望。 J2EE中的模块应该是一次打包的jar。 太接近了!! 我猜,我们必须等到JSF 2.2的发布以及几个月后才能获得最知名的应用程序服务器的支持。

由于没有用于构建模块化系统的标准,因此许多知名项目都基于上述框架之一或从头开始开发了自己的模块系统。 SonarSource的Jenkins , Atlassian的Jira和Sonar都是基于Java的应用程序,具有强大的模块/插件系统。 您按照一些准则开发插件(包括用户界面),然后通过模块/插件管理器将其部署为单个jar。 在大多数情况下,您需要重新启动系统,但是我认为这不会打扰任何管理员,因为您可以轻松地增加软件的功能。

所以我的困境仍然有效。 我应该开始构建自己的模块/插件系统还是应该等待标准出台并促进全球模块化Web应用程序的开发? 我不知道为什么这种标准化尚不可用,为什么我们不得不在所有这些技术和框架中最终尝试(仍然没有资源)! 我们是否接近开发真正的模块化企业Web应用程序的标准?

参考: 为什么没有用于开发真正的模块化Web应用程序的标准? 从我们的JCG合作伙伴 Patroklos Papapetrou在Only Software Matters博客上获得 。

相关文章 :

  • OSGi将Maven与Equinox结合使用
  • Tomcat中的零停机部署(和回滚); 演练和清单
  • Java Code Geeks Andygene Web原型
  • Java最佳实践系列
  • Java教程和Android教程列表

翻译自: https://www.javacodegeeks.com/2011/09/real-modular-web-applications-why-there.html

真正的模块化Web应用程序:为什么没有开发标准?相关推荐

  1. jboss 发布web_JBoss模块示例–模块化Web应用程序

    jboss 发布web 最近,我读到了为什么没有标准来开发真正的模块化Web应用程序? 由Patroklos Papapetrou撰写( 在Java Code Geeks中也有介绍 ). 受本文的启发 ...

  2. web前端模块化开发_真正的模块化Web应用程序:为什么没有开发标准?

    web前端模块化开发 OSGI , SpringSource , Jboss模块 ,J2EE和清单永远不会结束.所有这些技术都向他们的最终用户/开发人员保证了相同的东西,或多或少是Java模块化Web ...

  3. JBoss模块示例–模块化Web应用程序

    最近,我读了为什么没有标准来开发真正的模块化Web应用程序? 由Patroklos Papapetrou撰写( 在Java Code Geeks中也有介绍 ). 受本文的启发,我决定检查实际使用的JB ...

  4. 7 个让您需要渐进式 Web 应用程序做项目开发的理由

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 自从渐进式Web应用程序(PWA)诞生以来,许多公司已开始利用这个新平台来增强用户体验并扩展新的用户群.其中 ...

  5. 渐进式 Web 应用程序是移动开发的未来吗?

    摘要:渐进式Web应用程序(Progressive Web Application,简称PWA)是使用常见的Web技术(HTML.CSS和JavaScript)构建的应用程序,其发行方式与其他Web应 ...

  6. Qt Creator构建Web应用程序

    Qt Creator构建Web应用程序 构建Web应用程序 要求 搭建开发环境 为WebAssembly设置Qt 启用WebAssembly插件 指定WebAssembly设置 添加WebAssemb ...

  7. Web 应用程序的自动化测试

    如今,大多数的应用软件被写为基于 Web 的应用程序并通过浏览器展示给用户并与之进行交互.不同公司和机构组织都需要测试这些应用程序的有效性.在一个高度交互性和响应的软件流程时代,许多组织倾向于运用敏捷 ...

  8. 如何在局域网上托管ASP.NET Web应用程序

    目录 介绍 问题 一个简单的解决方案 设置网络证书颁发机构 1. 证书颁发机构的证书 2. 证书颁发机构的根证书 3. 服务器的证书 存储证书 配置Web应用程序 启动服务器 示例应用程序 调试 得到 ...

  9. 如何在 2022 年为 Web 应用程序选择技术堆栈

    文章目录 什么是技术堆栈? 为 Web 开发选择技术堆栈时要考虑的事项 选择熟悉的技术 跟随趋势 考虑项目的细节 确保高安全级别 记住你的最后期限 选择前端技术栈 框架 编程语言 选择后端技术栈 编程 ...

最新文章

  1. 2018 百越杯 pwn(Boring Game Write up)
  2. 博客堂也遇DotText经典Exception
  3. angular.js 嵌套路由
  4. unity3D小小白之雾效
  5. Hibernate中使用Criteria查询及注解——(Dept.hbm.xml)
  6. BOM中的那点事-location
  7. [Leetcode][第39题][JAVA][组合总和][回溯][dfs][剪枝]
  8. mysql数据库表的导入导出
  9. r语言descstats_一条命令轻松绘制CNS顶级配图-ggpubr
  10. 风林火山最新系统win11 32位旗舰版v2021.07
  11. shell 应用场景及工作原理
  12. gerber文件_90%的工程师容易忽视(一):PCB输出gerber文件,这样操作才正确!
  13. 第十四:Pytest进阶之html测试报告
  14. python中如何判断输入的是否是数字_python如何判断输入是不是数字
  15. 使用弹性布局来解决令人烦恼的垂直居中问题~~
  16. 今晚的比赛(2011.12.4)
  17. 对MySQL数据库日志文件进行维护
  18. 用网页做触摸屏展示的设计要点
  19. Windows客户端使用教程
  20. Smart200控制台达B2伺服做点动回原点和绝对定位等一些列动作,程序由SmartV2.4版本编写

热门文章

  1. netty java_Netty Java快速指南
  2. raii_Java中的RAII
  3. red hat 4.1.2_安装Red Hat Container Development Kit 2.2版本
  4. java写入单个字符_将2个字符写入单个Java char
  5. spring配置jndi_在Spring Framework中通过JNDI进行配置
  6. go micro java_Java Micro Framework:您无法忽略的新趋势
  7. wildfly管理控制台_WildFly 9 –别希望您的控制台像这样!
  8. 使用sstableloader恢复Cassandra Priam备份
  9. 平台框架_从框架到平台
  10. ejb生命周期_无状态EJB:池化和生命周期