2021Java:新的一年有哪些框架和趋势?


从技术角度来看,Java世界内的框架是最大的不同之一。仅使用Java SE平台而不使用任何工具来查看Java应用程序具有挑战性。在新的一年里,自然会出现问题,例如在新项目中可以使用哪些框架,框架的类型和趋势。这篇文章的目的是讨论Java世界中最流行的框架以及对世界上最流行的语言之一对明年的期望。

毫无疑问,注释或元数据功能在世界范围内促进了很多工作。通常,绝大多数框架都使用这种类型的资源。但是,与何时读取这些批注相关的更改是:

  • 在运行时:注解信息在Java应用程序启动后立即读取,并且通常使用Java Reflection API。促进可插入性和/或即插即用效果的因素,可以通过简单地通过添加依赖项来修改应用程序的行为。另一点是易于封装。例如,由于反射,可以不使用setter来具有属性。自动增量标识符和反射将顺利解决此问题。

  • 在编译时:此方法旨在将所有Java元数据处理和分析带到编译时而不是执行时。这种类型的方法往往会减少启动时间以及内存消耗。一种实现此方法的方法是使用Java注释处理器。

如前所述,元数据读取对于框架类型来说是一个巨大的游戏规则改变者,因为总体上,今年最常用的框架具有非常相似的特征:

  • 不仅仅是一个框架,而是一个平台:2020年最著名的框架(通常会在2021年脱颖而出)因其在其保护伞内拥有一系列工具来在各个方面帮助开发人员而脱颖而出,无论是在安全API中就像集成其余部分一样API。

  • 依赖注入:通常是一个容器,负责管理应用程序中的依赖。保持体系结构内松散耦合的好工具。

  • 使用数据库和服务进行访问:连接数据库(无论是关系数据库还是非关系数据库)都很重要;毕竟,如果应用程序是头脑,那么数据就是系统的心脏。此时,将减少Java应用程序与数据库之间的所有可能的样板。

  • 代码外的配置:诸如数据库用户和密码之类的凭据必须在代码外。在理想的环境中,开发人员或体系结构团队无需遵循十二种应用程序因素的最佳实践就可以了解此类信息。这些生态系统可以选择通过环境覆盖所有配置。可以以对应用程序透明的方式为每个环境进行配置。

基于前面提到的Java工具的这些特征,突出的Java框架是:

  • Quarkus:Red Hat创建的最新项目,其主要目标是具有快速启动和降低内存占用的能力,例如NodeJS和Go等技术。

  • Micronaut:可能是Java开发的第一个平台,可以在无服务器架构中非常有效地工作。

  • Spring:来自Rod Johnson所写的一本书,它基于对Java EE(目前为Jakarta EE)的扩展和改进。

  • Jakarta EE / MicroProfile:虽然不一定是框架,但是是规范。这些项目驱动并作为先前项目的基础。重要的一点是,由于有了规范,可以直接更改实现,并且我们有多家供应商正在与他们合作,并使用诸如Wildfly,Payara,TomEE等实现。

下表显示了这些生态系统及其各个组成部分之间的关​​系。框架之间共享的一点是,每个人都有将属性映射到环境变量的信息的规则。例如,如果您希望有一个配置属性文件要在本地执行,则此功能很有用。对于生产应用程序,该属性将在生产中透明地覆盖,以至于即使开发团队也不需要了解此信息。

Framework Metadata Data Configuration DI
Quarkus Reflectionless Hibernate/Panache (Active Record) Eclipse MicroProfile Config/Binding from Environment Variables Quarkus DI
Jakarta EE/MicroProfile Reflection JPA, NoSQL Eclipse MicroProfile Config/Binding from Environment Variables CDI
Spring Reflection Spring Data Spring Configuration/Binding from Environment Variables Spring IoC
Micronaut Reflectionless Micronaut Data Micronaut Configuration/Binding from Environment Micronaut IoC

云环境中最受欢迎的框架

总是很重要的一点是,根据开发人员或开发团队希望委托给云的操作抽象级别,云世界中存在服务模式。抽象程度越高,业务风险越低;但是,服务成本往往更高。最重要的是,托管服务(如Dan Moore在每位云工程师应了解的97件事中:专家的集体智慧)包含已安装的软件以及这些服务的所有维护和管理知识,从而简化了整个开发团队的生命。

在这种服务中,我们可以将PaaS(平台即服务)归类为服务,因为它使开发团队专注于交付,并大大减少了云中的操作份额。例如,通过使用PaaS Platform.sh,可以降低操作的复杂性以及使用云时涉及的风险:

  • 降低琐碎操作的复杂性,例如备份/还原,JVM和数据库更新。

  • 它使用GitOps的概念,即易于频繁部署,易于管理环境变量。它还与Github,Bitbucket和GitLab集成。

  • 定义应用程序和服务(例如数据库)之间的访问控制。

  • 轻松使用CI / CD

  • 服务已经集成,因此只需告诉我们您的应用程序需要什么服务,Platform.sh将管理该应用程序的所有信息。

为了促进现有系统的迁移或基于云的新系统的创建,Platform.sh为Java世界中最流行的框架创建了以下指南:

Quarkus

Micronaut

Spring

Jakarta EE/MicroProfile (Payara)

Java框架最强大的功能之一是在许多框架中找到的,本文提到了四个最受欢迎的开发平台。在执行时或在编译时,通过读取注释的方式都可以发现框架体系结构中的一个强大功能。Java框架之间的共同点是它们具有依赖项注入机制,良好实践的配置以及Platform.sh支持,从而简化并加速了云环境中的应用程序。


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