web前端模块化开发

OSGI , SpringSource , Jboss模块 ,J2EE和清单永远不会结束。所有这些技术都向他们的最终用户/开发人员保证了相同的东西,或多或少是Java模块化Web应用程序(?)。 但是,我们当中有多少人实际上已经尝试过用Java开发REAL模块化软件系统? 我们当中有多少人成功完成了任务? 您可能已经注意到,我已经将单词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前端模块化开发

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

  1. java和web前端哪个加班_【java和web前端哪个好?】-看准网

    16年4月份去了一次宜家的招聘会,当时提交了简历,做了简单的面试.后来没有结果了之后一直到17年1月份,这期间一直给宜家投简历,前程无忧/智联招聘都不断的投简历.1月份HR给我打电话叫我去面试一轮1. ...

  2. 引入js_好程序员web前端教程分享js中的模块化一

    好程序员web前端教程分享js中的模块化一:我们知道最常见的模块化方案有CommonJS.AMD.CMD.ES6,AMD规范一般用于浏览器,异步的,因为模块加载是异步的,js解释是同步的,所以有时候导 ...

  3. 好程序员web前端教程分享js中的模块化一

    好程序员web前端教程分享js中的模块化一:我们知道最常见的模块化方案有CommonJS.AMD.CMD.ES6,AMD规范一般用于浏览器,异步的,因为模块加载是异步的,js解释是同步的,所以有时候导 ...

  4. 深圳Web前端学习:js中的模块化--【千锋】

    深圳Web前端学习:js中的模块化–[千锋] 0.前言 我们知道最常见的模块化方案有CommonJS.AMD.CMD.ES6,AMD规范一般用于浏览器,异步的,因为模块加载是异步的,js解释是同步的, ...

  5. 软件开发全套视频教程汇总(javaSE,javaEE,linux,android开发,C# ,web前端,大数据云计算,数据挖掘,web前端,php开发,UI设计,C++开发,3D视频)

    软件开发全套视频教程汇总(javaSE,javaEE,linux,android开发,C# ,web前端,大数据云计算,数据挖掘,web前端,php开发,UI设计,C++开发,3D视频) 这是我以前学 ...

  6. 如何学好python web开发_如何学好python web开发

    1.前言 我在没有接触互联网这个行业的时候,就一直好奇网站是怎么构建的.我现在虽然从事互联网相关的工作,但是也一直没有接触过Web开发之类的东西,不过兴趣终归还是要有的,还要自己动手去实践的.Web开 ...

  7. Web前端饱和了?还能学Web前端吗?

    这几天在知乎上看到这么一个问题:"Web前端现在怎么这么多人?",题主在问题描述中不停的阐述着自己找工作时的艰辛和困难,抱怨投出的简历犹如石沉大海,连个泡都不冒,自己连面试通知都收 ...

  8. web前端技术分享:详解模块化require 和 import的区别

    在前端开发中,我们可以使用很多模块化的库来帮助我们更好的实现效果,有一些库的功能类似很多同学就不知道该如何选择,比如require和import,今天小千就给大家介绍一下两者的区别. 一.区别 1.r ...

  9. web前端项目实例网站_招聘 | 北京 | tSynsth系联设计 建筑设计师 / 室内设计师 / 项目负责人 / WEB前端开发工程师 / 实习生...

    关于我们 系联设计(Tuning Synesthesia ,tSynsth, TS)是一支由多元背景的设计师与软件工程师组成的国际团队,致力于想法与过程让设计 "可持续". 系联专 ...

最新文章

  1. 利用kickstart自动安装虚拟机
  2. C# 中 以 # 打头的 编码 是: html 编码解码地址 转换
  3. Spring Boot + IntelliJ IDEA——自动部署[Spring Boot热部署]+LiveReload[前端自动刷新、热加载]解决方案
  4. Winrunner与QTP
  5. C++ 容器适配器(stack、queue、priority_queue)
  6. [译] 逐渐去掌握 React(作为一名 Angular 开发者)
  7. 如何成为合格的数据分析师
  8. 如何在Windows环境搭建Object C开发环境
  9. 【光学】基于Matlab模拟衍射光栅实验
  10. 开了店铺没访客没流量?Shopee店铺日常运营引流方式来啦
  11. bootstrap 4 在VS中的使用
  12. 关于C语言define的边缘效应
  13. SpringBoot 配置文件加密的两种方式
  14. 【反向和同向比例运算电路】
  15. 川大研究生计算机网络挂科,四川大学200多名研究生被清退,让人倍感惋惜,原因几乎相同!...
  16. 【论文阅读笔记】A Multi-Task Learning Formulation for Predicting Disease Progression
  17. 动态生成模板(模板生成器)
  18. 为了成长,我豁出去了!同程苏州,我来了!
  19. DBCO-PEG-NHS,NHS-PEG-DBCO,二苯并环辛炔-聚乙二醇-活性酯,DBCO-PEG衍生物
  20. 标杆案例|中海数字化转型:以客户为中心,打造客户全域旅程数据平台

热门文章

  1. 新的学期、新的开始、新的付出、新的收获!
  2. 班级日常 | 一天一瞬间!
  3. java中input表单中的type=date返回类型【切记】
  4. Linux中打包和解压到的方法
  5. android微信分享之视频、URL地址、表情分享
  6. 三级pc技术_第十九周PC、笔电、数码周边新品汇总:AMD英特尔激战正酣
  7. 水晶报表图形位置_看了我用Excel做的年度报表,老板直夸好
  8. org.apache.kafka.common.errors.TimeoutException: Topic not present in metadata 解决方法
  9. envoy api 网关_在边缘,作为网关或在网格中构建控制平面以管理Envoy代理的指南...
  10. gwt格式_活性GWT