Spring Boot或Jakarta EE –哪个更好?


我将一个框架置于另一个之上。这两种,SpringBoot和JakartaEE都是伟大的框架来构建伟大的现代Java应用程序。一些开发人员喜欢这个,其他开发者喜欢那个。这是为什么?我认为这通常只是因为一个开发人员已经收集了更多有关Spring Boot的经验,而另一个开发人员则具有了Java EE的经验。这些技术发展很快,很难学习并且无法正确应用所有内容。您将一种保护主义置于另一种保护主义之下,以免显得愚蠢无知。但是Spring Boot周围有一定的噪音,给人的印象是Spring Boot将是更好的系统。

从20年前开始,我就亲自使用Java EE!所以–是的,我知道一个比另一个要好得多,而且我对别人可能拥有的Spring Boot没有深入的了解。

如果您是从头开始使用新的应用程序或微服务,那么Spring Boot会很棒,因为它可以为您提供所需的一切,而且几分钟之内即可启动。这太妙了。Java EE开发人员总是嫉妒Spring Boot。Java EE在2013年集成了CDI时就迎头赶上了,它最初是由Spring发明的,而CDI真是太棒了。它使我可以轻松地连接组件并加快开发速度。这两个框架现在处于同一水平,并且彼此相互促进。

现在,我想给您一个简短的印象,为什么我们在开源项目Imixs-Workflow中仍然信任Java EE / Jakarta EE。如上所述,如果您开始开发新的应用程序,那么这两个框架都是一样的。像Imixs-Workflow这样的项目是不同的。它是一个开放的工作流引擎,具有多个子项目,每个子项目可以相互插入。因此它本身就是一种框架,因此我们必须做一些假设:

  1. 我们不知道一个开发人员将如何使用我们的框架
  2. 我们不知道我们的框架将在哪种平台和架构上使用
  3. 我们希望我们的框架需要集成到其他框架中,例如安全性,消息平台或更多。
    因此,wee需要一个坚实的概念来以一种不会破坏框架或限制开发人员设计其应用程序的方式来打开它。我们需要一个由各方支持并从不同角度维护的框架。在我看来,这是Spring Boot和Jakarta EE之间的主要区别。Jakarta EE的发展不仅由一家公司来推动。这是一个由个人和大型科技公司组成的社区。这不是一件坏事。您可以确定您的应用程序可以使用数年,并且始终会有一个舒适的解决方案来赶上新技术。

让我在一个例子中展示一下。如果我想扩展自己的框架以便其他开发人员可以轻松集成,则可以定义CDI事件。这是开发人员可以“观察”并构建其扩展的微小代码。

public void myFunction(@Observes org.imixs.workflow.engine.DocumentEvent event) {
  ... do something with this object ....
}

这段代码将在任何应用程序服务器上运行,并且我可以确定开发人员可以以清晰且有据可查的方式改编Imixs-Workflow DocumentEvent。有一个正式的规范文档,确切描述了CDI事件将如何工作。对于Jakarta EE,您不需要将您的应用程序与CDI库捆绑在一起-您只需要制定规范即可。不要误会我的意思-CDI Events也是Spring Boot的一部分。但是您不能假定每个Spring应用程序都集成了Events。

类似的示例是诸如监视,指标或配置之类的跨领域功能。有了项目microprofile.io,在幕后默默地完成了许多工作。Microprofile已集成到Jakarta EE堆栈中,并且已经成为所有现代应用程序服务器的一部分。这意味着您可以以非常简单的方式在Jakarta EE应用程序中适应此类跨领域功能。例如,在Imixs-Workflow中,我们将配置从仅一个中央属性文件更改为microprofile-config。这意味着Imixs-Workflow现在可以注入可以通过各种方式提供的配置值。

@Inject@ConfigProperty(name = "metrics.enabled", defaultValue = "false")private boolean metricsEnabled;

例如,可以从普通属性文件,环境变量,Kubernetes ConfigMaps甚至与特定于项目的数据库配置表一起提供此配置属性。对于像Imixs-Workflow这样的框架项目,这是一个重要方面,因为我们不知道目标应用程序的外观。因此,我们需要对那些事情持开放态度。

您现在可能会感到,我更喜欢Jakarta EE而不是Spring Boot。但这又不是重点。我想指出的是,单个应用程序,微服务或框架的开发有不同的目标。为了确保Imixs-Workflow等框架项目的架构非常开放,Jakarkara EE提供了更广泛,更深入的规范。对于许多应用程序项目或微服务,这可能不是证明任何额外培训费用合理的有效论据。因此,该论点对于使用您已获得最多经验的框架仍然有效。但是在选择工具时要保持开放,并避免偏见。宇宙中的一切都有其意义。


原文链接:http://codingdict.com