新年伊始:2022年,十大最佳Java框架值得您选择

编者按:

静静的,2021就那样地成为了不可再来的过去;默默的,2022如这般地踏上了一切未知的新征程。作为IT行业的一份子,不是在工作,就是在学习。过去的一年,道一声:您辛苦了!昨天所说的未来,她就这么来了,您得好好地对待……如何呢?好吧,那就先来一份Java应开发中常用的优秀框架清单给你——好好学习,新的一年里,你一定更进一阶,昂昂雄起!

@牛旦IT课堂 衷心祝福各位朋友2022新年快乐,身体健康,心想事成!

Java框架

Java 是一种强大的编程语言,当与框架结合时,Java 可以为任何领域提供最佳解决方案,无论是电子商务、银行、云计算、金融、大数据、股票市场、IT 等。

如果您刚开始使用 Java,请通过此博客(编程新手(一):Java认知及初学者指南)来看看 Java 是个什么鬼,它将带您了解开始使用框架所需的所有重要概念。

1.何为Java 框架?

作为模板或骨架而预先编写的代码主体,然后开发人员可以使用和重用这些代码来创建应用程序,要做的就是根据需要编写相应的代码,以使应用程序按照他们的意图作为框架实际构成而工作。框架的重用使开发人员能够对其关注业务应用而进行编程,无需从头开始创建每一行代码而耗费资源。

Java 框架特定于 Java 编程语言,用作开发软件应用程序和 Java 程序的平台。

Java 框架包括而不限于用于处理、输入和管理硬件设备以及与系统软件交互的预定义类和函数。这取决于框架的类型、程序员的技能水平、想要完成的任务以及他们的偏好等。

2.为什么是框架?

简而言之,框架为您的应用程序提供了一个基础性主体结构。例如,如果我们有一个合适的测试框架,我们可以自动化很多事情并获得准确和一致的结果。同样,如果有用于 ORM、Web 应用程序、日志记录、数据管理等的框架,它将使开发人员的生活变得简单,并帮助他们更专注于业务逻辑,而不用担心跨域或应用程序而使用的通用代码片段。

认识到这些以后,我来看看你都有哪些热门流行的Java框架。

3.10大热门框架

虽然有很多框架是基于 Java 构建的,但这里有一些非常常用的不同类型的框架——Web 应用程序、网络应用程序、日志记录、测试、ORM 等。 注意,每一个都有自己的好处或优势,且最适合不同的业务用例或应用场景。严格的说,我们不能说哪个更好,因为它们在各自不同的场景中都很好——各有各的特点。

下面就来简要地介绍下这些人们的Java框架。

1)Spring框架

Spring 凭借其依赖注入的概念和面向方面编程的特性,席卷了开发世界。它是一个用于企业级应用程序的开源框架。

使用 Spring,开发人员可以创建松散耦合的模块,其中依赖项由框架处理,而非依赖代码中处理的库。

Spring框架包罗万象,涵盖了很多特性,包括安全性和配置性,简单易学。此外,由于它是最流行的 Web 框架,因此您可以找到大量文档和活跃的社区。

配置完所有内容后,您的代码将变得干净且易于理解。其中主要概念如下:

  • u 依赖注入 (Dependency Injection (DI) 也称为控制反转(Inversion of Control) )——在这个原理中,不是应用程序按顺序控制流,而是将控制权交给驱动流的外部控制器。外部控制器是事件。当某个事件发生时,应用程序流程将继续。这为应用程序提供了灵活性。在 Spring 中,IoC 是通过 DI 完成的,DI 分为三种类型——setter 注入、方法注入和构造函数注入。
  • u Beans 和 Spring Context——在 Spring 中,对象被称为 bean,并且有一个 BeanFactory 来管理和配置这些 bean。您可以将 beanfactory 视为实例化、配置和管理 bean 的容器。大多数应用程序使用 xml (beans.xml) 进行配置。 ApplicationContext 是 BeanFactory 的超集,用于需要事件传播、声明机制和与 Spring 面向方面的特性集成的更复杂的应用程序。
  • u Spring框架的核心模块有(快速切入:Spring框架核心概念总览):

ü Spring Context:用于依赖注入(DI)

ü Spring DAO:使用DAO模式进行数据库操作

ü Spring JDBC:用于 JDBC 和数据源支持

ü Spring ORM:用于对 Hibernate 等 ORM 工具支持

ü Spring AOP:面向切面编程

ü Spring Web 模块:用于创建 Web 应用程序(Spring MVC)

ü 其它与时俱进的新模块等。

2)Struts框架

Apache Struts 是另一个强大的 Web 应用程序开源框架。它遵循MVC(模型-视图-控制器)模型并扩展了JSP API。在传统的 servlet-JSP 方法中,如果用户提交了一个包含他的详细信息的表单,那么信息就会进入 servlet 进行处理,或者控制权会转移到下一个 JSP(Java 服务器页面——您可以在HTML中编写 Java 代码 )。这对于复杂的应用程序来说变得混乱,因为“视图”或表示层理想情况下不应该有业务逻辑。

Struts 将 View、Controller 和 Model(数据)分开,并通过一个配置文件 struts-config.xml 提供它们之间的绑定。

模型(Model)用来关联数据层的相关处理。

控制器(Controller)是一个 ActionServlet,您可以在其中为视图编写模板,并且使用 ActionForm JavaBean 维护用户数据。 Action 对象负责转发应用程序流。

视图(View)由一组丰富的标签库维护。

与单独使用 servlet 和 JSP 的传统 MVC 方法相比,Struts 易于设置并提供更多的灵活性和可扩展性。它可以成为您作为 Web 开发人员职业生涯的良好起点。

3)Hibernate

尽管 Hibernate 不是一个全栈框架,但它彻底改变了我们看待数据库的方式。 作为Java Persistence API (JPA) 的实现,Hibernate 是 Java 应用程序的 数据库对象关系映射 (ORM)。就像 SQL 一样,Hibernate 中的查询被称为 HQL(Hibernate Query Language)。其实后来企业级Java规范中出现的JPA,正式受到了Hibernate的影响而来的。

Hibernate 直接将 Java 类映射到相应的数据库表,反之亦然。

hibernate 中的主要文件是 hibernate.cfg.xml 文件,其中包含有关将 Java 类与数据库配置映射的信息。

Hibernate 解决了 JDBC 的两个主要问题——JDBC 不支持对象级关系,如果你决定迁移到不同的数据库,旧的查询可能无法工作——意味着很多变化——即时间和金钱支出!

Hibernate 提供了一个抽象层,以便代码与数据库松散耦合。诸如建立数据库连接、执行 CRUD 操作之类的事情都由 Hibernate 处理——因此开发人员不需要实现这些,从而使代码独立于所使用的数据库。

4)Apache Wicket

如果您已经使用过 JSP,那么学习Wicket将是小菜一碟。 Wicket 是一个简单的 Java Web 框架,具有面向组件的结构,您只需要了解 Java 和 HTML。绝对没有 XML 或配置文件!

Wicket 的主要特性是它的 POJO 模型,其中组件是具有 OOP 特性的简单(普通的)Java 对象。这些组件作为可重用的包捆绑在一起,包含图像、按钮、表单、链接、页面、容器、行为等,以便开发人员可以自定义它们。

Wicket 是轻量级的,您可以非常快速地构建应用程序。对用 Wicket 编写的代码进行单元测试也很容易。

5)JSF(Java Server Faces)

不要将 JSF 与 JSP 混淆,后者只是一个可以包含静态和动态内容的文本文档。 JSF 由 Oracle 开发,作为 企业级Java规范的的一部分。

它是一个基于组件的 MVC 框架,并为基于服务器的应用程序提供了可重用的 UI 组件。主要思想是封装各种客户端技术,如 CSS、JavaScript 和 HTML,这将允许开发人员在不深入了解这些技术的情况下创建 UI。他们只需拖放 UI 组件,就可以更专注于他们的表示层细节。

JSF 中的默认模板系统是 FaceLets。 JSF 与 Struts 非常相似。

JSF 可以进一步与支持 AJAX 的组件无缝集成,通过添加用于验证和方法调用的 Ajax 事件来丰富用户体验。

有很多优秀的第三方JSF标准实现库可以直接使用。

6)Dropwizard

另一个名副其实的 Java 框架 – wizard(向导)。这个轻量级框架让您可以非常快速地完成您的应用程序,因为它对高级配置、日志记录、应用程序指标等提供开箱即用的支持。您可以创建具有高性能、稳定和可靠的 RESTful Web 应用程序。

Dropwizard 特别神奇,因为它将 Java 生态系统中的大量库(如 Jetty、Guava、Jersey、Jackson 和 Metrics 等)整合到一个框架中,并为您提供了一个轻量级和精益的应用程序。

由于所有配置、安全性和性能相关任务都有集成库,因此作为开发人员,您需要做的就是构建业务逻辑。

Dropwizard 是一个与库捆绑在一起的开源框架,您可以使用 Eclipse IDE 轻松设置它并创建一个简单的项目来学习(请相信,您完全可以自己学习 Dropwizard!)。 Dropwizard 网站上的基本教程将帮助您完成每一步。

7) Grails

Grails 是一个易于学习的全栈框架,非常适合那些刚刚开始编程生涯的人。 Grails 是一个用 Groovy 编程语言编写的 Web 框架,它运行在 Java 平台上,并且与 Java 语法完美兼容。该框架基于 MVC 设计模式。

Groovy 类似于 Java,与 Java 相比,它添加了更多功能。如果您已经了解 Java,那么学习 Groovy 非常容易。

与JSP 类似,在Grails 中,渲染技术是GSP(Groovy Server Pages)。在 Grails 中为视图创建标签既简单又容易。它使用了 GORM——它是 Grails 中使用的 ORM 实现。您也可以直接使用 Hibernate 代替 GORM。 Grails 内置了对 RESTful API 的支持,因此可以轻松创建此类服务。

最棒的部分来了——您可以将现有的 Java 代码与 Grails 集成。如果您的应用程序中混合使用了 Groovy 和 Java 代码 – 它会工作得很好!

学习 Grails 的最佳方法是使用任何 Java IDE(如 Eclipse、NetBeans 等)设置您自己的开发环境,然后按照教程来构建您的第一个 Web 应用程序。

8) ATG

ATG 是一个用 Java 编写的网络商业平台。它是一个可定制和可配置的框架,特别适用于与电子商务相关的网站。该产品归 Oracle 所有,支持复杂而庞大的 B2B 和 B2C 应用程序。然而,对于小规模应用,它可能是昂贵的。如果您正在开发电子商务网站,ATG 是一个很好的学习框架,它将丰富您的技术和领域知识。

ATG 平台可以在三台服务器上运行——Oracle Weblogic、IBM Websphere 和 JBoss。

框架中有 3 个主要层级:

  • u Dynamo 应用框架( Dynamo Application Framework)——它是提供基于 JavaBeans 和 JSP 的开发环境的基础层。所有通用功能都有标准的 ATG 类,甚至可以通过配置文件链接组件 bean 来创建和组装自定义 Java 代码。
  • u 个性化模块(Personalization module )——这是为每个用户动态定制内容的地方。该模块有助于控制和维护定义要向特定用户显示哪些内容的用户配置文件和业务规则。该层还支持有针对性的电子邮件。
  • u 场景模块( Scenarios module)——该模块通过引入时间敏感、事件驱动的活动来管理网站访问者与一段时间内的内容之间的交互,进一步增强了个性化模块的功能。例如,限时优惠、某些会员的独家优惠等……

ATG 是一个宽泛的框架,您需要时间和耐心来学习它。沃尔玛、梅西百货、百思买、ASDA 等几家大公司的网站都建立在 ATG 上。

9) Play

Play 是一种稍微传统和独特的框架类型,它遵循约定优于配置的方法。它基于MVC模式,是一个开源的Web应用程序框架。除了 Java,您还可以在 Scala 中编写 Play Web 应用程序。

Play 类似于 Django 或 Ruby on Rails 或 ASP.NET 架构,不一定遵循 J2EE Web 标准。

Play 的一些特点是:

  • ü 异步处理带来的高性能
  • ü 没有容器,没有状态,建立在反应式原则上
  • ü 使用静态类型语言,因此大多数错误是在编译时捕获的,从而在开发生命周期的早期节省了大量错误。
  • ü Scala 探究了真正的 OOP 以及一些函数式编程概念。它与 Java 的兼容性造就了一个优秀而强大的系统。
  • ü Play2 发布了一个新的强大的构建系统 sbt,它可以轻松地与 Maven 项目集成以及创建简单的 JAR 文件。
  • ü 内置了用于常见功能的广泛关系数据库访问库。

10) Apache Hadoop

虽然 Apache Hadoop 不是一个全栈框架,但它提供了一个软件框架,并在 MapReduce 编程模型上工作。这些实用程序可以轻松处理大量数据(大数据)、存储、分析和处理它们以提供更快、更有效的结果。

我之所以将 Hadoop 包括在此列表中,因为它是当今大数据日益突出的“重要事物”。

Hadoop 使用主从设计模式帮助分布式数据存储和处理。主节点(即NameNode)的Hadoop HDFS(Hadoop分布式文件系统)层有数据节点。 MapReduce 层有 JobTracker 和 tasktracker。从节点分别有Data节点和taskTracker。

HDFS 将文件分成一组块,并在整个集群中复制这些块。

如果您想熟悉大数据和数据科学——Hadoop 是您的起点。具体可以到官网去进一步学习 Hadoop。

4.其它Java 框架还有

11) GWT

Google Web Toolkit (GWT) 是一个明显由 Google 创建的框架,用于在 Java 中创建富 Internet 应用程序。 GWT 的最佳特性之一是它将 Java 代码转换为 JavaScript 代码——也就是基于浏览器的自定义代码。我个人喜欢这个功能,因为在开发过程中,我们过去常常在浏览器测试上花费大量时间和精力。使用这套开源工具,我们可以在更短的时间内编写高性能的 Web 应用程序。如果您已经有一个代码库,您可以轻松地将它与 GWT 集成,因为 GWT 也与 Eclipse IDE、Maven 和 Junit 兼容。该框架还提供了广泛的小部件(widget)库,可以执行大多数任务,即使是 Java 初学者也可以轻松开发业务逻辑,而不必担心太多基本的东西。 GWT 框架有 3 个主要组件——Java 到 JS 编译器、位于核心 JRE 库之上的 JRE 仿真库和包含 UI 组件、历史管理和更多功能的 GWT UI 构建库。

可以在这里来学习GWT:https://www.gwtproject.org/gettingstarted.html

12)Vaadin

Vaadin 是一款旗舰产品,也是开发者可以使用 Java 进行 HTML5 Web UI 实现的平台。它是一个开源平台,包括 Java Web 框架和一组 Web 组件以及应用程序启动器和工具。这些 Web 组件构成了 Vaadin 的核心,可以进行定制,从而为桌面和移动应用程序提供高性能和多功能的代码。

Vaadin 流是 Vaadin 平台的实际 Java 框架部分,负责客户端-服务器通信以及路由。使用 Vaadin 流,您可以完全用 Java 编写 Web 应用程序,而无需大惊小怪的 JS 或 CSS。 UI 组件使用与浏览器和服务器之间的自动通信来处理用户的浏览器活动。您可以轻松地将 Vaadin 组件集成到您正在使用的任何 IDE 中,而且它是一个跨平台框架,因此无需担心将代码迁移到不同的平台。

这是一种构建 Java 应用程序的全新方法,因此您可以专注于表示层,而无需担心客户端-服务器通信。它还具有数据绑定 API,可使用类型安全的 Java 代码和抽象层将 UI 组件映射到数据库,以便您可以使用 HTML 模板和 Java 在 UI 中构建可重用的组件。

13)Spark

Spark 是 Apache 的另一个杰作,它是一个开源的 Web 开发框架,它具有与 Spring、Play 和 JAX-RS 类似的功能,但功能更强大,并且不遵循传统的 MVC 设计模式。

它是 Java 的微框架和特定领域语言,专注于开发速度。它需要非常少的配置和编码。由于内存计算,它在数据处理方面比 Hadoop 快 10 倍。 Spark 是一个完全动态的框架,支持延迟初始化和实时数据处理。

与专注于数据科学和大数据的编程语言 Scala 和 R 集成也很容易。 Spark 的主要目标是处理大量数据,还支持使用 SQL 查询、机器学习和图形算法进行高级分析。

不要认为 Spark 可以取代 Hadoop——它可以是 Hadoop 提供的功能的扩展——如果你进入数据科学领域,学习这两个框架将使你比其他框架更具优势。

14)OpenXava

一个用于快速开发 Web 应用程序的低代码平台,您可以在创纪录快的时间内启动和运行业务应用程序。它由业务组件组成,可让开发人员轻松轻松地构建复杂的应用程序。真正意义上的可扩展、可定制和面向对象,OpenXava 以 Java 类为核心对业务问题进行建模。这种模型驱动的开发方法确保了封装性。开发人员仅将模型定义为带注释的普通 Java 类,并且必要的功能都是在运行时生成的。

OpenXava 的结构和理念遵循业务组件架构,而不是传统的 MVC 架构。这里的一切都是一个业务概念,所有对某个业务概念有贡献的工件都在同一个地方,无论是关联的视图-View、模型-Model还是控制器-Controller。

在学习这个框架之前,你绝对应该到这里(https://www.openxava.org/OpenXavaDoc/docs/philosophy_en.html)阅读这种语言背后的概念。

15)Vert.X

Vert.x 由 Eclipse 开发,是一个事件驱动的应用程序框架,它使用 Java、JS、Groovy、Scala 等多种语言。因此,它本质上是多语言的。它依赖于异步编程模型,从而使应用程序无阻塞且不受多线程影响。

Vert.x 可以说更像是一个工具包,它提供多种语言的 API 来执行所有 Web 应用程序所需的异步任务——日志记录、身份验证、监控、数据库连接、多集群支持等…… Vert.x中有两个主要概念:

Verticle——就像任何其他异步模型一样,有一个事件循环,其中包含消息、网络缓冲区、HTTP 请求等事件。事件循环中的每个事件都由 Verticle 处理。

Event Bus(事件总线)——不同的 Verticle使用事件总线相互通信。这是通过异步消息传递完成的。事件总线可以执行不同类型的消息传递,如点对点、广播和请求-响应。

Vert.x 最好的一点是它的非阻塞特性,这使得 Web 应用程序具有很高的性能。该框架可用于任何应用程序——小型、中型或大型。如果您理解了 Node.js,您会更喜欢 Vert.x,因为它具有 Node.js 的所有功能以及 Java 虚拟机的优点,这使得它成为一个强大而健壮的组合。

16)Tapestry

从概念上讲,Tapestry 类似于 JSF 和 Wicket。它是一个开源、跨平台、基于组件的 Web 应用程序开发框架,可以创建高度可扩展的应用程序。它建立在丰富的 Java Servlet API 之上,适用于任何容器或应用服务器。 Tapestry 是一个真正的面向对象的框架,因为您能使用纯 HTML 模板或纯 Java 类(对象)创建 HTML 页面。几乎不需要 XML 配置,Tapestry 使用注释(注解),从而使代码简单且易于管理。

使用 Tapestry,应用程序停机时间最小,因为即使是对 Java 类的任何更改都可以热交换(hot-swapped),而无需重新启动服务器。 Tapestry 还负责 URL 构建和重定向。与其他框架不同,这里的框架适应代码而不是相反。

Tapestry 的一些开箱即用的功能是——文件上传、分页、字段验证、日期和日历逻辑、内化、显示弹出窗口等……

很容易将 Tapestry 代码与后端框架(如 Spring、Hibernate 等)和测试框架(如 Selenium)集成。

17)Jersey

Jersey 是一个 Web 服务框架,用于创建 RESTful 服务并支持 JAX-RS API。它通过有用的特性和实用功能极大地简化了 RESTful 服务的开发。 Jersey 提供了一种抽象层,因此开发人员无需担心客户端-服务器通信的低级实现,而可以专注于主要的 Web 服务功能。

与任何其他 RESTful 框架相比,Jersey 的一个显着特点是它允许分块输出,即服务器可以部分或分块地向客户端发回响应。当必须发送大数据并且可以在准备整个响应时发送数据块时,这很有用。

Jersey 还配备了简单的测试基础设施。您可以编写主要基于 Junit 的轻量级集成测试。将测试与 Maven 环境集成也很容易。您需要做的就是在 pom.xml 中添加依赖项。

18)OSGi

OSGi 或开放服务网关倡议(Open Service Gateway initiative)定义了一个基于组件的系统。它是一种流行的 Java 框架,其中每个组件都称为一个捆绑包(bundle)。每个 bundle 都有独立的生命周期,不依赖于其他 bundle。将捆绑包视为具有 OSGi 特定标头的 jar 文件。捆绑包必须明确声明他们需要访问的包,否则 OSGi 平台将无法启动。

捆绑包使用 JVM 级别的服务注册表来发现、发布和绑定捆绑包作为服务。这就是 OSGi 的精髓——模块化应用程序架构促进适应性和快速更改,而无需太多应用程序停机时间(运行时灵活性)。

OSGi 之所以流行,主要是因为它易于与 eclipse 和基于 maven 的项目集成。

OSGi 有一些很好的概念和好处,但由于单独的独立包版本控制可能是一个问题。这可能是使用此框架而不是其他框架的一个主要缺点。然而,值得在这个框架上投入一些时间,因为模块化和隔离类加载的好处对开发人员来说是个重要的概念。

19)Drools

Drools 是一种流行的业务规则管理系统。它具有业务规则引擎 (BRE)、创作、规则管理程序以及对决策和符号模型的运行时支持。规则管理程序称为 Drools 工作台。该项目得到了 RedHat 和 JBoss 的支持。使用 Drools,开发人员可以轻松地将数据与业务逻辑分开。 Drools 的两个主要步骤是——

  • 创作 – 创建规则文件;
  • 运行时——执行规则的地方。

Drools 最重要的特性是可以随时删除和添加新规则,而无需重新启动服务器。

Drools 是依赖于许多条件才能发生某些操作的应用的合适选择。例如,检查一个人是否有资格升级他的计划,有一些设定的规则——例如,客户是否存在,客户的账单金额是否大于某个限额等等。这些规则可以定义为决策表,而不是将它们硬编码在代码中。任何更改都不需要另一个构建、完整的测试或重新部署!

20)MyBatis

MyBatis 是 Apache 的一个免费软件,它是 Java 中的一个持久性框架,其中 Java 方法与 SQL 语句映射,而 ORM 将 Java 对象映射到数据库中的表。映射引擎以声明方式使用 XML 描述符或注释将 SQL 结果映射到对象树中。

在很多方面,MyBatis 都优于 JDBC 和 Hibernate。 MyBatis 可以动态生成 SQL 语句,将它们与代码分开。它还提供查询缓存以便于访问。 API 非常简单,您无需精通 SQL 或数据库即可编写 MyBatis 代码。

MyBatis 是 Hibernate 和 JDBC 的一个很好的替代方案,当您的应用程序不太复杂,并且您想要简单的开箱即用功能,例如数据库连接、事务管理、加载数据库驱动程序、管理和释放连接等由框架完成时。 MyBatis 也可以很容易地与 Spring 框架集成。

21) Apache Mina

Apache Mina 是一个网络应用程序框架,开发人员可以使用它轻松创建高度可扩展和高性能的网络应用程序。无论您使用 TCP/IP、UDP、LDAP、NTP、DNS 等还是自定义协议,Mina 都为所有传输提供统一的 API。该框架可以提供高级和低级网络 API。 Mina 完全处理 I/O 操作,帮助开发人员完全专注于业务逻辑和其他应用程序需求。在模拟对象的帮助下很容易测试编写的代码。您可以使用 Eclipse IDE 轻松学习 Mina。它可以与 Spring 和 PicoContainer 等流行框架集成,使其成为网络应用程序的流行选择。

MINA 比 SOAP 更好,更稳定可靠。它有一个丰富的网络库来处理并发线程。

5.结论

还有许多其他 Java 框架,它们不是全栈或 Web 开发框架,但在每个应用程序中都很有用——比如用于日志记录的 log4j、用于测试的 Junit 和 Selenium 等等。尽管您可以随时随地学习它们以及您在上面列表中看到的其他框架,但了解这些是非常必要的。

您的应用程序的最佳框架应该满足您的业务需求,提供一定程度的灵活性和最佳性能,并且易于维护和吸收变化。

例如,对于全栈 Web 开发框架,如果需要更改某些内容,它应该对应用程序的影响最小,即您不必为小的更改再次构建和部署应用程序。只需更改配置就可以发挥作用。此类应用程序可节省停机时间并提供灵活性。

明智地选择合适的Java 框架,可以更好的享受 Java 提供的功能特性和优秀的基础性支持。当然还有其它一些优秀的框架如ShardingSphere等,作为2022年的开年第一篇,就写到这了——2022开始了,希望每位都能站在巨人的肩膀上,创造更大价值,成就更好自我!撸起袖子加油干!

你都使用了或使用过哪些框架呢?请在留言区分享出来吧,也说说你的体会和心得。

2021最佳10种java框架

Java是一种强大的语言,当与框架相结合时,Java可以为您提供电子商务,银行,云计算,财务,大数据,股票市场,且更多的任何域的最佳解决方案。

如果您刚刚从Java开始,请参阅Java Live Active使用此博客将通过您需要知道的所有重要概念来开始使用框架。

什么是Java框架?

作为模板或骨架的预先写代码的正文,其中一个开发人员可以根据需要填写其代码来使用和重用以创建应用程序,以便在他们打算引用其作为框架时使用的代码来创建应用程序。重用框架使开发人员能够在没有手动开销的情况下从头开始创建每行代码的手动。Java框架特定于Java编程语言,用作开发软件应用程序的平台,Java程序.java框架可以包括用于处理,输入和管理硬件设备的预定义类和功能,以及与系统软件进行交互。这取决于框架的类型,程序员的技能水平,他们试图完成的东西,以及他们的喜好。

为什么要用框架?

框架为您的应用程序提供结构。例如,如果我们有适当的测试框架,我们可以自动化大量的东西并获得准确和一致的结果。同样的方式如果有orm,web应用程序,日志记录,数据管理等框架,它将使开发人员的生活简单,并帮助他们专注于业务逻辑,而不是担心域或应用程序中使用的常见代码。

10个最佳Java框架

虽然Java有许多框架,但这里有一些非常常用类型的框架不同类型 – Web应用程序,网络应用程序,日志记录,测试,ORM等。注意,这些都有其自己的好处,可以为不同的业务工作最佳用例。我们不能说哪个更好,因为它们都在不同的场景中都很好。

Spring

凭借其依赖注入和面向方面的编程特征的概念,Spring逐行开发世界。它是一种用于企业应用程序的开源框架。

在春天,开发人员可以创建松散耦合的模块,其中依赖性由框架处理,而不是根据代码中的库来处理。

Spring框架是详尽的,涵盖了很多功能,包括安全性和配置,易于学习。此外,由于它是最受欢迎的Web框架,您可以找到很多文档和活动社区。

通过配置的所有内容,您的代码将是干净且易于理解的。

主要概念:

  • 依赖注入(DI)(控制的反转) – 在此原则上,而不是依次控制流量的应用程序,它使控制到驱动流量的外部控制器。外部控制器是事件。当有些事件发生时,申请流程继续。这为应用提供了灵活性。在春天,IOC由DI完成,其中三种类型 – Setter注入,方法喷射和构造仪注入。
  • Bean和Spring上下文 – 在春Spring,对象称为bean,并且有一个beanfactory管理和配置这些bean。您可以将BeanFactory视为实例化,配置和管理bean的容器。大多数应用程序使用XML(beans.xml)进行配置。ApplicationContext哪个BeanFactory用于更复杂的应用程序,需要事件传播,声明机制和与Spring的方面的面向侧向特征的集成。
  • 阅读关于一些更多主要的Spring概念。

2.Apache Struts

Apache Struts是Web应用程序的另一个强大的开源框架。它遵循MVC(模型 – 视图 – 控制器)模型并扩展JSP API。在传统的servlet-jsp方法中,如果用户提交给我们的详细信息说明表单,则该信息然后转到Servlet进行处理,或者控制转到下一个JSP(Java Server Pages – 您可以在其中编写Java代码HTML)。由于“View”或演示层理想地没有业务逻辑,这将使复杂应用程序变得令人困惑。

Struts将视图,控制器和模型(数据)分开,并通过配置文件Struts-config.xml提供各自之间的绑定。

控制器是actionservlet,您可以在其中编写视图的模板,并且使用ActionForm JavaBean保持用户数据。操作对象负责转发应用程序流程。

该视图由丰富的标记库维护。

Struts易于设置并通过Servlet和JSP单独使用传统的MVC方法提供更大的灵活性和可扩展性。这可能是您作为Web开发人员的职业生涯的一个很好的起点。

3.Hibernate

虽然Hibernate不是一个全堆栈的框架,但它完全改变了我们查看数据库的方式。Java Persistence API(JPA)的实现,Hibernate是Java应用程序的对象关系映射(ORM)数据库。就像SQL一样,Hibernate中的查询称为HQL(Hibernate查询语言)。

Hibernate直接将Java类映射到对应的数据库表,反之亦然。

Hibernate中的主文件是hibernate.cfg.xml文件,其中包含有关映射Java类的信息,其中包含数据库配置。

Hibernate解决了JDBC – JDBC的两个主要问题 – JDBC不支持对象级关系,如果您决定迁移到不同的数据库,则旧的查询可能无法正常工作 – 意味着很多更改 – 即时间和金钱!

Hibernate提供了一个抽象层,使得代码与数据库松散地耦合。诸如建立数据库连接的东西,执行CRUD操作是由Hibernate处理的 – 所以开发人员不需要实现,因此使得代码独立于使用的数据库。

从这些初学者和高级课程中选择一个或多个,以了解Hibernate和JPA的完整概述。

4. Apache Wicket.

如果您已经与JSP合作,则学习Wicket将成为Cakewalk。一个简单的Java Web框架,Wicket有一个面向组件的结构,您需要知道的只是Java和HTML。绝对没有XML或配置文件!

Wicket的主要特点是IT POJO模型,其中组件很简单(普通旧的)Java对象具有OOP功能。这些组件作为可重用包作为可重用包,其中包含图像,按钮,表单,链接,页面,容器,行为等,以便开发人员可以自定义它们。

Wicket是轻量调,您可以确保建立应用程序。它也很容易在检票口中编写的单元测试代码。

5. JSF(Java Server Faces)

不要将JSF与JSP混淆,这只是可以具有静态和动态内容的文本文档。JSF是由Oracle开发的,作为Java Enterprise Edition 7的一部分。

它是基于组件的MVC框架,并具有基于服务器的应用程序的可重用UI组件。主要思想是封装各种客户端技术,如CSS,JavaScript和HTML,它将允许开发人员在不知道任何深入的任何技术的情况下创建UI。它们只能拖放UI组件并更多地关注其演示层细节。

JSF中的默认模板系统是Facelets。JSF与Struts非常相似。

JSF可以进一步无缝地与启用Ajax的组件集成,以通过为验证和方法调用添加Ajax事件来丰富用户体验。

查看此链接课程以了解更多有关JSF的信息。

6.Dropwizard

另一个Java框架符合其名称 – 向导。这种轻量级框架允许您非常快速地完成应用程序,因为它是对高级配置,日志记录,应用指标等的框支持。您可以创建提供高性能的RESTful Web应用程序,稳定可靠。

DropWizard尤其是神奇的,因为它汇集了一系列库,如Jetty,Guava,Jersy,Jackson和java生态系统中的许多其他人的指标,并为您提供了轻量级和精益的应用。

由于所有配置,安全性和性能相关的任务都有集成的库,因为您需要做的所有配置,就像开发人员建立业务逻辑一样。

DropWizard是一个与库捆绑在一起的开源框架,您可以轻松地使用Eclipse IDE设置并创建一个简单的项目来学习(相信我,您可以自己学习阵列!)。DropWizard网站的基本教程将通过每个步骤帮助您。

7. Grails.

Grails是一种很容易学习的全堆栈框架,适合刚刚开始编程职业的人。虽然Grails是以Groovy编程语言编写的Web框架,但它在Java平台上运行,并且与Java语法完美兼容。该框架基于MVC设计模式。

Groovy类似于Java,与Java相比,有一些更多的功能。如果您已经知道Java,则非常容易学习Groovy。

与JSP类似,在Grails中,渲染技术是GSP(Groovy Server页面)。为Grails中的视图创建标记简单且简单。它还使用GOM,因为您可能已经猜到是Grails中使用的ORM实现。您也可以直接使用Hibernate而不是GOM。Grails为RESTful API建立了支持,因此可以轻松创建此类服务。

以下是最好的部分 – 您可以将现有的Java代码与Grails集成。如果您的应用程序中的Groovy和Java代码混合 – 它将正常工作!

学习Grails的最佳方式是使用像Eclipse,NetBeans等的任何Java IDE设置自己的开发环境……并按照任何这些教程建立您的第一个Web应用程序。

8.ATG

ATG是用Java编写的Web Commerce平台。它是一种可定制和可配置的框架,对与电子商务有关的网站特别有用。该产品由Oracle拥有,并支持复杂和巨大的B2B和B2C应用程序。然而,对于小规模应用,它可能是昂贵的。如果您正在进入开发电子商务网站,ATG是一个很好的学习框架,并将丰富您的技术以及域名知识。

ATG平台可以在三个服务器上运行 – Oracle WebLogic,IBM WebSphere和JBoss。

框架中有3个主要层 –

  • Dynamo应用程序框架 – 它是基于JavaBeans和JSP的开发环境提供的基础层。对于所有常用功能,都有标准的ATG类,甚至可以通过通过配置文件链接来创建和组装甚至自定义Java代码。
  • 个性化模块 – 这是每个用户的内容是动态定制的。此模块有助于控制和维护用户 – 配置文件和业务规则,该配置文件和业务规则定义要将内容显示到特定用户的内容。此图层还支持有针对性的电子邮件。
  • 方案模块 – 此模块通过引入时间敏感的事件驱动的广告系列来增强个性化模块的功能,这些活动是在一段时间内管理站点访问者和内容之间的交互。例如,有限时间提供,某些成员的独家优惠等……

ATG是一个广泛的框架,你需要时间和耐心学习它。几家像沃尔玛,梅奇,最佳,ASDA等几家大公司都拥有他们的网站,建于ATG。

9 Play

Play是一种略微传统和独特的框架类型,遵循“惯例”通过配置的方法。它基于MVC模式,是一个开源Web应用程序框架。除了Java,您可以在Scala中编写播放Web应用程序。

播放类似于Django或Ruby在Rails或ASP.NET架构上,不一定遵循J2EE Web标准。

Play的一些特征是 –

  • 由于异步处理,性能高
  • 没有容器,没有状态,建立在反应原则上
  • 使用静态类型的语言,因此大多数错误在编译时捕获了在开发生命周期的早期节省大量错误。
  • Scala探讨了真正的OOP以及一些功能性编程概念。它与Java的兼容性为一个优秀和强大的系统制作。
  • 使用Play2,已发布了一个新的强大的构建系统SBT,这使得与Maven Projects易于集成以及创建简单JAR文件。
  • 广泛的关系数据库访问库,用于常用功能。

10. Apache Hadoop.

虽然Apache Hadoop不是一个全堆栈框架,但它提供了一个软件框架并在MapReduce编程模型上工作。这些实用程序可以轻松处理大量数据(大数据),存储,分析和处理它们,以提供更快,更高效的结果。

我在这个列表中包含了Hadoop,因为它是今天的“东西”,具有大数据的突出。

Hadoop有助于使用主从设计模式的分布式数据存储和处理。主节点(即NameNode)的Hadoop HDFS(Hadoop分布式文件系统)层具有数据节点。MapReduce图层具有JobTracker和TaskTracker。从节点分别具有数据节点和TaskTracker。

HDFS将文件划分为块集,这些文件在群集中复制。

如果您想熟悉大数据和数据科学 – Hadoop就是您开始的地方。通过这些教程轻松学习Hadoop。

11. GWT.

Google Web Toolkit(GWT)是一个明显创建的框架,由Google创建,在Java中创建丰富的Internet应用程序。 GWT的最佳功能之一是它将Java代码转换为JavaScript代码 – 基于浏览器的超自定义代码。我个人喜欢这个功能,因为在开发期间,我们曾经在浏览器测试中花费了大量的时间和精力。使用此开源组工具集,我们可以在更短的时间内编写高度性能的Web应用程序。如果您已经有一个代码库,您可以轻松地将其与GWT集成,因为GWT也与Eclipse IDE,Maven和Junit兼容。该框架还提供了广泛的窗口小部件库,可以执行大多数任务,使Java中的初学者甚至是开发业务逻辑,而不担心基本的东西。 GWT框架有3个主要组成部分 – Java到JS编译器,坐在核心JRE库顶部的JAVA仿真库和包括UI组件,历史管理和更多功能的GWT UI构建库。

在这里开始学习GWT。

12. vaadin.

Vaadin是一个旗舰产品,也是开发人员可以使用Java进行HTML5 Web UI实现的平台。它是一个开源平台,包括Java Web框架和一组Web组件以及应用程序启动器和工具。这些Web组件形成了Vaadin的核心,可以定制,导致桌面和移动应用程序的高性能和多功能代码。

Vaadin Flow是Vaadin平台的实际Java Framework部分,负责客户服务器通信以及路由。使用Vaadin Flow,您可以完全在Java中完全写入Web应用程序,而无需JS或CSS的FUSS。UI组件使用自动通信和浏览器和服务器处理用户的浏览器活动。您可以轻松地将Vaadin组件集成到您使用的任何IDE中,只需跨平台框架,因此无需担心将代码迁移到其他平台中。

构建Java应用程序是一种全新的方法,以便您可以单独专注于演示层,而无需担心客户端 – 服务器通信。它还具有数据绑定API,可使用类型安全的Java代码和抽象图层将UI组件映射到数据库,以便使用HTML模板和Java构建UI中的可重用组件。

13.Spark

来自Apache的另一个Masterstroke,Spark是一个开源的Web开发框架,它具有与春天,播放和JAX-RS类似的功能,但更强大,并且不遵循传统的MVC设计模式。

它是一个微框架和一个特定于域的语言,用于Java专注于开发速度。它需要非常少的配置和编码。由于内存中的计算,它在数据处理方面比Hadoop快10倍。Spark支持完全动态的框架,支持延迟初始化和实时数据处理。

它也很容易与Scala和R集成,这是专注于数据科学和大数据的编程语言。Spark的主要目标是处理大量数据,并支持使用SQL查询,机器学习和图形算法的高级分析。

不要以为火花可以替换Hadoop – 它可以是Hadoop提供的功能的扩展 – 学习这两个框架如果您进入数据科学领域,这两个框架将为您提供优势。

14. OpenXava.

一种以快速方式开发Web应用程序的低码平台,您可以在记录时间内启动和运行业务应用程序。它由业务组件组成,使建立甚至复杂应用程序简单,可为开发人员提供麻烦。OpenXava的可扩展,可自定义和OO,使用Java类作为其核心来模拟业务问题。这种模型驱动的开发方法确保封装。开发人员仅将模型定义为普通注释的Java类,并且在运行时都会生成必要的功能。

OpenXava的结构和哲学遵循业务组件架构,而不是传统的MVC架构。在这里,一切都是经营理念,并且所有贡献到某个业务概念的伪影都在同一个位置是相关的视图,模型或控制器。

在您了解此框架之前,您肯定应该阅读此语言背后的概念。

15. Vert.x.

由Eclipse开发,Vert.x是一个事件驱动的应用程序框架,它使用了Java,JS,Groovy,Scala等许多语言。因此是本质上的多胶。它依赖于异步编程模型,从而使应用程序不堵塞并没有多线程。

vert.x可以说是一个工具包,提供多种语言的API,以执行所有Web应用程序所需的异步任务 – 记录,身份验证,监视,DB连接,多集群支持等… Vert中有2个主要概念。X –

  • verticle – 就像任何其他异步模型一样,存在一个事件循环,该事件循环具有消息,网络缓冲区,HTTP请求等。来自事件循环的每个事件由vertice处理。
  • 事件总线 – 不同的顶点使用事件总线互相通信。这是通过异步消息传递完成的。事件总线可以执行不同类型的消息传递,如点,广播和请求 – 响应。

关于Vert.x的最佳方法是其非阻塞性质,使Web应用程序具有高度性能。该框架可用于任何应用 – 小,中或大规模。如果您已经知道node.js,则将更多地欣赏vert.x更多,因为它具有Node.js的所有功能以及Java虚拟机的益处,它使得强大且强大的组合。

16.Tapestry

概念上,Tapestry类似于JSF和Wicket。它是一个开源,跨平台,基于组件的Web应用程序开发框架,可以创建高度可扩展的应用程序。构建在Rich Java Servlet API上,它适用于任何容器或应用程序服务器。Tapestry是一个真正面向对象的框架,因为您使用纯HTML模板或普通Java类(对象)创建HTML页面。几乎没有必需的XML配置,Tapestry相当使用注释,从而使代码简单且易于管理。

使用Tapestry,应用程序停机时间最小,因为甚至可以热插拔均匀的任何更改,而无需重新启动服务器。Tapestry还负责URL构建和重定向。与其他框架不同,这里的框架适应代码,而不是反之亦然。

其中一些开箱功能的挂毯是 – 文件上传,分页,字段验证,日期和日历逻辑,内化,显示弹出窗口等……

很容易与春天,休眠等的后端框架集成挂毯代码,以及测试框架等exenium等框架。

17.Jersey

Jersey是一个Web服务框架,可以创建RESTful服务并支持JAX-RS API。通过有用的功能和实用功能,它大大简化了RESTful服务的开发。Jersey提供了一种抽象层,以便开发人员不必担心客户端 – 服务器通信的低级别实现,并可以专注于主要的Web服务功能。

与任何其他宁静的框架相反,Jersey的一个醒目特征是它允许Chunked输出即,服务器可以向零件或块中的客户端发送响应。当必须发送大数据时,这很有用,并且在准备整个响应时可以发送数据块。

Jersey还可以轻松测试基础设施。您可以编写主要基于JUnit的轻量级集成测试。与Maven环境相结合,还容易集成测试。您需要做的就是添加pom.xml中的依赖项。

18. OSGI.

OSGI或Open Service Gateway Initiative定义了基于组件的系统。它是一个受欢迎的Java框架,其中每个组件都被称为捆绑包。每个捆绑都有一个独立的生命周期,不依赖于其他捆绑包。考虑捆绑包是具有OSGi特定标题的JAR文件。捆绑包必须明确声明他们需要访问的包,而无需哪个OSGI平台。

捆绑包使用JVM级服务注册表来发现,发布和绑定捆绑包作为服务。这是OSGI的本质 – 对于模块化应用程序架构,促进适应性和快速更改,无需超时(运行时灵活性)。

OSGI主要是流行的,因为它与Eclipse和基于Maven的项目轻松集成。

OSGI具有一些好的概念和好处,但由于个人独立的捆绑版本控制可能是一个问题。这可能是使用此框架在其他框架上的一个主要缺点。然而,由于模块化和孤立的课程加载是开发人员的重要概念,值得投资这一框架中的一些时间。

19.Drools

Drools是一个流行的商业规则管理系统。它具有业务规则引擎(BRE),创作,规则管理应用程序和运行时支持,用于决策和符号模型。规则管理应用程序称为Drools Workbench。该项目由Redhat和Jboss支持。使用Drools,开发人员可以轻松地将数据与业务逻辑分开。Drools中的两个主要步骤是 –

  • 创作 – 创建规则文件
  • 运行时 – 您执行规则的位置

Drools最重要的特点是可以随时删除并添加新规则,而无需重新启动服务器。

Drools是依赖于某些行动的大量条件的应用程序的使用权。例如,要检查一个人是否有资格升级他的计划,例如,有一定的设定规则 – 例如,客户现有数量,客户的账单金额大于特定限制等。这些规则可以定义为决策表而不是在代码中的硬编码它们。任何更改都不需要另一种方式构建,完整的测试或重新部署!

20. Mybatis.

Apache的自由软件,MyBatis是Java中的持久框架,其中Java方法映射了SQL语句,与ORM将Java对象映射到数据库中的表。映射引擎以声明方式使用XML描述符或注释将SQL结果映射到对象树中。

在很多方面,Mybatis比JDBC和Hibernate更好。MyBatis可以动态生成将它们与代码分开的SQL语句。它还提供查询缓存,便于访问。API非常简单,您不必是SQL或数据库中的专家,以便能够编写MyBatis代码。

Mybatis是一个很好的替代Hibernate和JDBC,当您的应用程序不太复杂并且您希望简单的框中的功能,如数据库连接,事务管理,加载数据库驱动程序,管理和释放连接等框架。Mybatis也可以用弹簧框架轻松集成。

21. Apache Mina.

Apache Mina是一个网络应用程序框架,开发人员可以轻松地创建高度可扩展和性能的网络应用程序。无论是使用TCP / IP,UDP,LDAP,NTP,DNS等还是自定义协议,Mina都有所有传输的统一API。该框架可以提供高级和低级别的网络API。Mina完全处理I / O操作,帮助开发人员充分集中在业务逻辑和其他应用需求上。很容易测试在模拟对象的帮助下编写的代码。您可以使用Eclipse IDE轻松学习MINA。它可以与流行的框架相结合,如Spring和Picocontainer,使其成为网络应用的热门选择。

Mina比Soap更好,更稳定可靠。它有一个丰富的网络库来处理并发线程。

从他们的官方页面上了解有关Apache Mina的更多信息。

结论

还有许多其他Java框架不是全堆栈或Web开发框架,但在每个应用程序中都很有用 – 像Logging,JUnit和Selenium用于测试等等。很重要,虽然您可以在与上面列表中看到的其他框架一起了解它们,但您可以了解这些问题。

您申请的最佳框架应满足您的业务需求,提供一定的灵活性和最佳性能,并且易于维护和吸收变化。

例如,对于完整的堆栈Web开发框架,如果需要更改某些东西,它应该影响应用程序最少,即,您不必再次构建和部署应用程序以进行小型更改。只是一个配置变化应该做魔法。此类应用程序节省停机时间并提供灵活性。

明智地选择Java的框架,享受Java提供的功能。

(本文由闻数起舞翻译自Sebastian D. Rosenbolt的文章《10 Best Java Frameworks to Use in 2021》,转载请注明出处,原文链接:https://medium.com/swlh/10-best-java-frameworks-to-use-in-2021-49b6d1322c9a)

Java程序员必须有15个框架。学习这些不是问题

Java 程序员方向太多,且不说移动开发、大数据、区块链、人工智能这些,大部分 Java 程序员都是 Java Web/后端开发。那作为一名 Java Web 开发程序员必须需要熟悉哪些框架呢?

今天,给大家列举了一些通用的、必须掌握的框架,学会这些,20K+ 不是问题。

1.Spring

毫无疑问,Spring 框架现在是 Java 后端框架家族里面最强大的一个,其拥有 IOC 和 AOP 两大利器,大大简化了软件开发复杂性。并且,Spring 现在能与所有主流开发框架集成,可谓是一个万能框架,Spring 让 JAVA 开发变得更多简单。

2.Spring MVC

Spring MVC 是一个 MVC 开源框架,用来代替 Struts。它是 Spring 项目里面的一个重要组成部分,能与 Spring IOC 容器紧密结合,以及拥有松耦合、方便配置、代码分离等特点,让 JAVA 程序员开发 WEB 项目变得更加容易。

3.Spring Boot

Spring Boot 是 Spring 开源组织下的一个子项目,也是 Spring 组件一站式解决方案,主要是为了简化使用 Spring 框架的难度,简省繁重的配置。

Spring Boot提供了各种组件的启动器(starters),开发者只要能配置好对应组件参数,Spring Boot 就会自动配置,让开发者能快速搭建依赖于 Spring 组件的 Java 项目。

4.Spring Cloud

Spring Cloud 是一系列框架的有序集合,是目前最火热的微服务框架首选,它利用Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Spring Boot 的开发风格做到一键启动和部署。

5.Mybatis/ iBatis

iBatis 曾是开源软件组 Apache 推出的一种轻量级的对象关系映射持久层(ORM)框架,随着开发团队转投Google Code 旗下,ibatis 3.x 正式更名为 Mybatis,即:iBatis 2.x, MyBatis 3.x。

6.Hibernate

Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,它将 POJO 与数据库表建立映射关系,是一个全自动的 orm 框架。Hibernate 可以自动生成 SQL 语句,自动执行,使得 Java 程序员可以随心所欲的使用对象编程思维来操作数据库。

7.Dubbo

Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC 分布式服务框架,现已成为 Apache 基金会孵化项目。使用 Dubbo 可以将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,可用于提高业务复用灵活扩展,使前端应用能更快速的响应多变的市场需求。

8.Netty

Netty 是由 JBOSS 提供的一个开源的、异步的、基于事件驱动的网络通信框架,用 Netty 可以快速开发高性能、高可靠性的网络服务器和客户端程序,Netty 简化了网络应用的编程开发过程,使开发网络编程变得异常简单。

9.Shiro

Apache Shiro是一个强大而灵活的开源安全框架,它干净利落地处理身份认证,授权,企业会话管理和加密。

10.Ehcache

EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是 Hibernate 中默认的CacheProvider。它使用的是 JVM 的堆内存,超过内存可以设置缓存到磁盘,企业版的可以使用 JVM 堆外的物理内存。

11.Quartz

Quartz 是一个基于 Java 的广泛使用的开源的任务调度框架,做过定时任务的没有没用过这个框架的吧?

12.Velocity

Velocity 是一个基于 Java 的模板引擎,简单而强大的模板语言为各种 Web 框架提供模板服务,来适配 MVC 模型。

13.jQuery

jQuery是一个快速、简洁的 JavaScript 框架,它封装 JavaScript 常用的功能代码,提供一种简便的 JavaScript 设计模式,极大地简化了 JavaScript 编程。

虽然哥好久没做 Web 开发了,但哥也不曾忘记,也还记得一些常用的写法,如:

$(“#wx”).html(“javastack”);

14.JUnit

JUnit 是一个 Java 语言的单元测试框架,绝大多数 Java 的开发环境都已经集成了 JUnit 作为其单元测试的工具。

15.Log4j

Log4j 是 Apache 的一个开源日志框架,通过 Log4j 我们可以将程序中的日志信息输出到控制台、文件等来记录日志。作为一个最老牌的日志框架,它现在的主流版本是 Log4j2。Log4j2是重新架构的一款日志框架,抛弃了之前 Log4j 的不足,以及吸取了优秀日志框架 Logback 的设计。

如果上面的大部分没用过,甚至都没听说过,那就怀疑你是不是个假程序员了,要加油了。

这些都是 Java 程序员必备的开发框架,有些不一定是首选的选择,但这些一定是 Java 程序员必备的。