jakarta ee_MicroProfile在Jakarta EE时代的作用

jakarta ee

自创建以来,MicroProfile赢得了广泛的关注,并制定了各种规格。 最初,它的创建是为了在多个供应商的推动下,以更快的速度推进微服务世界的企业Java。 现在,随着在Eclipse Foundation下将Java EE转换为Jakarta EE,MicroProfile如何合理地适合Enterprise Java领域中的情况?

据我所知,MicroProfile背后的想法是在推进Java Enterprise方面创造更快,更有效的进步。 到目前为止,有各种各样的规范,例如Config,Fault Tolerance或Metrics,旨在缩小Java EE API的差距以适应现代企业Java的需求。 同样,MicroProfile旨在使为微服务部署设计小型运行时成为可能,在这种情况下,项目仅提供他们正在使用的规范。

长处

今天,我看到了MicroProfile在改进企业Java方面的最大优势,即添加了Java EE 8当前缺少的内容。特别是诸如弹性,可观察性或简单的,独立于供应商的配置之类的问题尚未被Java Enterprise标准涵盖。 尽管在生产中运行企业应用程序时始终必须考虑这些问题,但对于基于微服务的系统而言,它们变得更加重要,因为基于微服务的系统分布更广。 诸如Config,Fault Tolerance或Metrics之类的MicroProfile项目弥合了这些差距。

MicroProfile已经有效地充当了潜在的新规范的孵化器。 MicroProfile项目能够定义Java Enterprise扩展,但是可以在规范级别上定义它,而不仅仅是单个实现或特定于供应商的解决方案。 这些项目可以作为新的Java Enterprise标准的基础。 实际上, Config JSR将基于MicroProfile Config及其实际经验。

除这些要点外,MicroProfile还允许开发人员通过仅包括他们所需的规范来分别配置其运行时。 按照这种方法,MicroProfile在其第一个版本中仅包括CDI,JAX-RS和JSON-P。

但是,对我而言,这仅是运行时优化。 我已经说过几次了,我认为这些标准以及拥有瘦身部署工件的可能性更为重要。 我通常使用Java EE应用程序服务器,该服务器支持MicroProfile,允许精简部署工件,并且仍附带其他企业标准,例如JPA。 如果(且仅当)最小运行时大小成为问题时,我将使用空心WAR / JAR方法。

少了什么东西

在将MicroProfile项目与Java Enterprise标准进行比较时,开发人员会注意到,前者缺少某些规范的互操作性。 无需任何配置即可使用多种技术的能力是我声称Java Enterprise API包含非常有效的开发人员体验的原因之一。 根据哪些项目将被视为MicroProfile的一部分,未来的规范可能会更多地集中在这一点上。

MicroProfile和Jakarta EE形成的当前状况面临着从组织角度和技术角度重新发明轮子的危险。 Jakarta EE倾向于类似地重复MicroProfile经历并仍在进行的开源过程和开发。 尤其是,当两种技术的方向和责任没有完全弄清楚时,供应商和贡献者就有两次花费类似努力的风险。 技术责任也是如此。 尽管大多数MicroProfile项目在Java Enterprise世界的其余部分都可以很好地工作,例如,Rest Client与JAX-RS广泛重叠,并且可以以二进制兼容的方式基于后者。

MicroProfile运行时的部署模型主要基于独立的可执行文件。 除此以外,一些供应商还支持定义运行时包含的规范以及将精简部署工件作为空心WAR / JAR工件进行运输的组合。 后者提供了很好的折衷,在某种程度上是两全其美。 但是,如前所述,我不认为最小的总运行时大小对于大多数企业项目至关重要。

提议的想法:Jakarta EE的孵化器

我对MicroProfile的未来及其在Jakarta EE时代在企业Java世界中的地位的建议是,作为将来Jakarta EE规范的孵化器。

MicroProfile将通过基于规范的扩展来推进企业Java,而不仅仅是基于单个实现或特定于供应商的功能。 与今天类似,MicroProfile项目将添加Java Enterprise中缺少的内容。

与当前的项目不同,孵化MicroProfile可以基于Jakarta EE的所有标准。 他们将共享相同的技术设计原则(请参阅我关于Jakarta EE设计原则的建议 )。 同样,MicroProfile可以确保Jakarta EE与MicroProfile规范之间的互操作性,类似于当今的Java EE标准。

这将大大提高开发人员的体验。 开发人员可以将MicroProfile项目添加到Jakarta EE应用程序中,以填补该Jakarta EE版本中的空白。 这些项目将遵循相同的原则,具有相似的外观,并与现有标准良好地协作。

与企业标准相比,MicroProfile允许更快的进度。 尽管Jakarta EE标准将花费大量的时间和精力,但是可以以轻量级的方式来组建和执行MicroProfile孵化项目,从而减少组织开销。 尽管如此,孵化MicroProfile仍将遵循Jakarta EE背后的思想和原则。

对于没有立即或最终添加到标准集中的扩展,孵化器流程始终是一个更安全的场所。 但是,需要孵化功能的项目可以在不更改其其余Jakarta EE应用程序的情况下将它们合并。

最终,一个正在孵化的MicroProfile项目一旦过渡到成为Jakarta EE标准,将剩下较少的工作。 虽然企业标准需要考虑更多方面,但是与创建两个单独的规范相比,所需的总体工作量和工作量将少得多。

下一步

通常,至关重要的是,Java Enterprise社区必须共享一个清晰的通用图像,以表示MicroProfile在未来的地位。

遵循MicroProfile作为Jakarta EE孵化器的想法的下一步是定义并达成协议:

  • Jakarta EE和MicroProfile的共享技术设计原则
  • 孵化MicroProfile的命名,品牌和名称空间
  • 未来MicroProfile项目和孵化到Jakarta EE的通用流程

我对您的反馈意见很感兴趣。 您对MicroProfile和Jakarta EE如何以及如何共存有何想法?

翻译自: https://www.javacodegeeks.com/2018/08/microprofiles-role-jakarta-ee.html

jakarta ee

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/333065.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux系统下MySQL数据库的超级管理员root的密码忘记/忘记密码怎么办?

文章目录方法一方法二方法三方法一 1.添加登录跳过权限检查配置 修改 /etc/my.cnf 文件,在 [mysqld] 配置节点添加 skip-grant-tables 配置 [mysqld] skip-grant-tables2.重新启动mysql服务 service mysqld restart3.修改密码 添加登录跳过权限检查配置后&#x…

Mybatis多参数封装到map中,多条件查询

1.UserMapper接口 package com.william.dao;import com.william.domain.QueryValueObject; import com.william.domain.User;import java.util.List;public interface UserMapper {/*** 多参数封装到map中&#xff0c;多条件查询* param map* return*/List<User> findBy…

jax-rs配置_具有MicroProfile配置的可配置JAX-RS ExceptionMapper

jax-rs配置当使用JAX-RS创建REST服务时&#xff0c;通常不返回任何内容&#xff08;例如HTTP 201/2/4等&#xff09;或某些数据&#xff08;可能采用JSON格式&#xff08;因此HTTP 200&#xff09;&#xff0c;或者返回某些异常/错误&#xff08;因此HTTP 4xx或5xx&#xff09;…

MySQL数据库修改用户登录密码的三种方式

文章目录一、更新 mysql.user 表二、用 set password 命令三、使用 mysqladmin 命令提醒&#xff1a;MYSQL5.7 版本后不再支持password()函数和password字段。 一、更新 mysql.user 表 mysql> use mysql; mysql> update user set passwordpassword(123456) where userr…

Mybatis多条件直接查询

1.UserMapper接口 package com.william.dao;import com.william.domain.QueryValueObject; import com.william.domain.User;import java.util.List;public interface UserMapper {/*** 根据多条件直接查询* param username* param sex* param startIndex* param pageSize* re…

java 正在验证应用程序_Java应用程序中的验证

java 正在验证应用程序我经常看到的项目几乎没有任何有意识的数据验证策略。 他们的团队在截止日期&#xff0c;明确要求的巨大压力下工作&#xff0c;只是没有足够的时间以适当且一致的方式进行验证。 因此&#xff0c;数据验证代码随处可见&#xff1a;JavaScript片段&#x…

Mybatis多条件直接查询Param注解版

1.UserMapper接口 package com.william.dao;import com.william.domain.QueryValueObject; import com.william.domain.User;import java.util.List;public interface UserMapper {/*** 多条件直接查询Param注解版* param username* param sex* param startIndex* param pageS…

WPS for MacOS如何设置自动句首字母大写

在顶部菜单栏&#xff0c;点击【文件】–>【文字偏好设置】或者点击左上角的【文件】–>【文字偏好设置】&#xff1a;

java 和javafx_Java,JavaFX的流利设计风格文本字段和密码字段

java 和javafx我刚刚发布了Java版本4.5 &#xff0c;JavaFX主题JMetro 。 此版本为“文本字段”和“密码字段”添加了新样式。 和往常一样&#xff0c;受到Fluent Design的启发。 在这篇文章中&#xff0c;我将详细介绍这个新版本。 JMetro版本4.5 就像我在简介中所说的那样&…

WPS for MacOS如何设置自动编号

在顶部菜单栏&#xff0c;点击【文件】–>【文字偏好设置】或者点击左上角的【文件】–>【文字偏好设置】&#xff1a;

Mybatis结果集映射

一、使用场景 当数据库里的列名和实体类的属性名不一致&#xff0c;就需要进行结果映射 二、UserMapper接口 package com.william.dao;import com.william.domain.QueryValueObject; import com.william.domain.User; import org.apache.ibatis.annotations.Param;import …

activemq 性能测试_ActiveMQ性能测试

activemq 性能测试我们使用ActiveMQ作为消息传递层–发送大量需要低延迟的消息。 通常它可以正常工作&#xff0c;但是在某些情况下我们已经看到性能问题。 在花了太多时间测试我们的基础结构之后&#xff0c;我想我已经学到了有关ActiveMQ的一些有趣的东西&#xff1a;它可能真…

WPS for MacOS如何设置自动拼写检查

在顶部菜单栏&#xff0c;点击【文件】–>【文字偏好设置】或者点击左上角的【文件】–>【文字偏好设置】&#xff1a;

jdk8 bug_JDK Bug系统浪费时间

jdk8 bug当我在OpenJDK jdk-dev邮件列表中看到Jesper Wilhelmsson的消息标题“ Introducing time浪费者 ”时&#xff0c;我想到了该消息的可能内容的几种可能性。 在阅读该链接与单击链接后出现消息之间的第二个左右时间内 &#xff0c;我想知道消息是否与以下主题之一有关&am…

角度和弧度的计算关系

一、角的两种单位 “ 弧度”和“度”是度量角大小的两种不同的单位。就像“米”和“市尺”是度量长度大小的两种不同的单位一样。 二、弧度的定义 角&#xff08;弧度&#xff09;&#xff1d;弧长/半径 圆的周长是半径的 2π倍&#xff0c;所以一个周角&#xff08;360度&a…

关键字搜索

1.1.1 需求分析 在首页或搜索页输入关键字&#xff0c;点击搜索 显示列表搜索结果&#xff1a; 1.1.2实现思路 &#xff08;1&#xff09;后端使用匹配查询和布尔查询 &#xff08;2&#xff09;前端向后端传递map&#xff08;因为提交的不仅仅是关键字&#xff0c;还有品牌…

java中线程死锁及避免_如何避免Java线程中的死锁?

java中线程死锁及避免如何避免Java中的死锁&#xff1f; 是Java面试中最受欢迎的问题之一&#xff0c;也是本季多线程的风格&#xff0c;主要是在高层提出&#xff0c;并带有很多后续问题。 尽管问题看起来很基础&#xff0c;但是一旦您开始深入研究&#xff0c;大多数Java开发…

MySQL查询数据字典_存储过程_函数_视图元数据_表元数据_触发器

文章目录一、查询所有的存储过程二、查询某个数据库下的存储过程三、查询所有的函数四、查询某个数据库下的函数五、查看存储过程详情六、查看函数详情七、查看存储过程的创建源码八、查看函数的创建源码九、查看视图元数据十、查看表元数据十一、查看触发器一、查询所有的存储…

关键字高亮查询

1.1.1 需求分析 所谓高亮&#xff0c;就是使用特别的样式修饰某字段中包含的搜索关键字。 需求&#xff1a;实现搜索高亮&#xff0c;商品名称使用红色显示搜索关键字。 1.1.2实现思路 使用默认高亮显示来获取每个搜索命中title字段的高亮显示&#xff0c;在指定title字段的…