Java常用框架,你用过几款?

作为头牌编程语言,Java的火爆程度已经毋庸置疑,Java框架在Java开发中有着不可忽视的重要地位。今天就给大家具体介绍一下Java常用框架,希望对正在学习Java的小伙伴有所帮助。

框架、设计模式

框架——代码重用

设计模式——设计重用

设计模式是对某种环境中反复出现的问题以及解决该问题的方案的描述,比框架更加抽象;框架可以用代码表示,也可以直接执行或者复用,而对设计模式而言只有实例才能用代码表示;

设计模式是比框架更小的元素,一个框架中往往包含多个设计模式,框架总是针对某一特定的应用领域,但是同一个模式却可以适用于各种应用。可以说,框架是软件,而设计模式是软件的知识。

▶️ 通俗讲框架

框架可以这样来理解,如建一座房子,先把房子的梁、柱子建起来,这就是一个房子的框架。软件也是一样,把一个软件的大概的梁、柱子建起来,就是软件的框架。

打个比方,如果你输入到屏幕上用System.out.println()如果println方法都要自己去实现,那是不是很恐怖。所以框架在解决大规模的问题上,这些基础工作是必需的。框架模式:MVC、MTV、MVP等等。

▶️通俗讲设计模式

设计模式是一种软件设计的整体思路。就是要把一些东西抽象出来再通过一定的方式重新整理,从而达到合理优化。比如最初只建了一座房子,只有四面墙一个顶。可随着需求的增多,要不断的装修。如果没有合理的规划,好好的房子会被搞的像迷宫一样。软件设计也是这样,如果没有一个设计模型,只是为了完成功能而写代码,最终这个程序会混乱不堪。

常用的设计模式:简单工厂模式、工厂方法模式、抽象工厂模式、静态代理模式、JDK动态代理模式、cglib动态代理模式、策略模式、模板模式、装饰器模式、观察者模式。

Spring

▶️ IOC容器

IOC容器就是具有依赖注入功能的容器,IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。应用程序无需直接在代码中new相关的对象,应用程序由IOC容器进行组装。在Spring中BeanFactory是IOC容器的实际代表者。

什么是IOC——解耦

在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑。

如果我们打开机械式手表的后盖,就会看到与上面类似的情形,各个齿轮分别带动时针、分针和秒针顺时针旋转,从而在表盘上产生正确的时间。图中描述的就是这样的一个齿轮组,它拥有多个独立的齿轮,这些齿轮相互啮合在一起,协同工作,共同完成某项任务。我们可以看到,在这样的齿轮组中,如果有一个齿轮出了问题,就可能会影响到整个齿轮组的正常运转。齿轮组中齿轮之间的啮合关系,与软件系统中对象之间的耦合关系非常相似。

对象之间的耦合关系是无法避免的,也是必要的,这是协同工作的基础。现在,伴随着工业级应用的规模越来越庞大,对象之间的依赖关系也越来越复杂,经常会出现对象之间的多重依赖性关系,因此,架构师和设计师对于系统的分析和设计,将面临更大的挑战。对象之间耦合度过高的系统,必然会出现牵一发而动全身的情形。

由于引进了中间位置的“第三方”,也就是IOC容器,使得A、B、C、D这4个对象没有了耦合关系,齿轮之间的传动全部依靠“第三方”了,全部对象的控制权全部上缴给“第三方”IOC容器,所以,IOC容器成了整个系统的关键核心,它起到了一种类似“粘合剂”的作用,把系统中的所有对象粘合在一起发挥作用,如果没有这个“粘合剂”,对象与对象之间会彼此失去联系,这就是有人把IOC容器比喻成“粘合剂”的由来。

拿掉IOC容器后的系统

我们现在看到的画面,就是我们要实现整个系统所需要完成的全部内容。这时候,A、B、C、D这4个对象之间已经没有了耦合关系,彼此毫无联系,这样的话,当你在实现A的时候,根本无须再去考虑B、C和D了,对象之间的依赖关系已经降低到了最低程度。

对象A获得依赖对象B的过程,由主动行为变为了被动行为,控制权颠倒过来了,这就是“控制反转”这个名称的由来。

▶️ AOP

简单地说,就是将那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。AOP代表的是一个横向的关系。比如日志,事务,权限等待,Struts2的设计就是基于AOP的思想,是个比较经典的例子。

AOP用来封装横切关注点,具体可以在下面的场景中使用:

Authentication 权限

Caching 缓存

Context passing 内容传递

Error handling 错误处理

Lazy loading 懒加载

Debugging 调试

logging, tracing, profiling and monitoring 记录跟踪 优化 校准

Performance optimization 性能优化

Persistence 持久化

Resource pooling 资源池

Synchronization 同步

Transactions 事务

SpringMVC

Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也需要简化。

Spring的web模型 – 视图 – 控制器(MVC)框架是围绕着处理所有的HTTP请求和响应的DispatcherServlet的设计。

Mybatis

MyBatis是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

▶️ 总体流程:

● 加载配置并初始化

触发条件:加载配置文件。

将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中。● 接收调用请求

触发条件:调用Mybatis提供的API。

传入参数:为SQL的ID和传入参数对象 。

处理过程:将请求传递给下层的请求处理层进行处理。● 处理操作请求

触发条件:API接口层传递请求过来。

传入参数:为SQL的ID和传入参数对象。

Maven

▶️ 什么是Maven?

Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。

▶️ Maven是干什么的?

它是一个Apache的开源项目,主要服务于基于Java平台的项目构建、依赖管理和项目信息管理,为了不重复造轮子。

例如:两个项目A B,项目A需要依赖一些jar包,项目B也需要依赖这些jar包,那么此时如果都把jar包引入到项目中,就是在重复造轮子,我们应该把这些所有的jar包放到一个地方,需要用的时候过去取即可。

SpringBoot

SpringBoot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。

SpringBoot框架中还有两个非常重要的策略:开箱即用和约定优于配置。开箱即用,Outofbox,是指在开发过程中,通过在Maven项目的pom文件中添加相关依赖包,然后使用对应注解来代替繁琐的XML配置文件以管理对象的生命周期。这个特点使得开发人员摆脱了复杂的配置工作以及依赖的管理工作,更加专注于业务逻辑。

约定优于配置,Convention over configuration,是一种由SpringBoot本身来配置目标结构,由开发者在结构中添加信息的软件设计范式。这一特点虽降低了部分灵活性,增加了BUG定位的复杂性,但减少了开发人员需要做出决定的数量,同时减少了大量的XML配置,并且可以将代码编译、测试和打包等工作自动化。

▶️ SpringBoot扩展

SpringBoot应用系统开发模板的基本架构设计从前端到后台进行说明:前端常使用模板引擎,主要有FreeMarker和Thymeleaf,它们都是用Java语言编写的,渲染模板并输出相应文本,使得界面的设计与应用的逻辑分离,同时前端开发还会使用到Bootstrap、AngularJS、JQuery等;在浏览器的数据传输格式上采用Json,非xml,同时提供RESTfulAPI;SpringMVC框架用于数据到达服务器后处理请求;到数据访问层主要有Hibernate、MyBatis、JPA等持久层框架;数据库常用MySQL;开发工具推荐IntelliJIDEA。

以上就是给大家介绍的常用Java框架。有不懂的问题,记得私信小象哦~

盘点Java程序员常用的12款框架,看看你是否落伍了?

十二个Java程序员必须掌握的Java开发框架有哪些?Java 开发应用很广泛,所以程序员就业行业和方向也很多。随着互联的发展,人工智能、大数据、区块链,很多Java 程序员选择Java Web/后端开发。然而程序员之前的区别还是很大的,如果想要拿高薪,作为一个程序员需要不断学习。那么,Java程序员必须要掌握哪些开发框架?下面千锋武汉Java培训小编总结了这12款开发框架,Java程序员必须掌握。一起来看看吧!

十二个必须掌握Java开发框架如下:

Java开发框架一、Spring

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

Java开发框架二、Spring MVC

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

Java开发框架三、Spring Boot

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

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

Java开发框架四、Netty

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

Java开发框架五、Spring Cloud

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

Java开发框架六、Shiro

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

Java开发框架七、Ehcache

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

Java开发框架八、Quartz

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

Java开发框架九、Velocity

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

Java开发框架十、jQuery

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

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

$(\”#wx\”).html(\”Javastack\”);

Java开发框架十一、JUnit

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

Java开发框架十二、Log4j

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

以上就是千锋武汉Java培训小编小编整理的“十二个Java程序员必须掌握的Java开发框架”内容,希望可以帮到您。有了这些框架,相信大家在Java开发中能更加省事。觉得本文对自己的有帮助的小伙伴,赶紧把文章分享出去吧!

如果你也想快速入行Java,千锋武汉Java培训自然是你不可错过的选择。千锋武汉Java培训课程采用100%全程面授教学,拒绝视频同步授课,拒绝双元视频班教学,拒绝直播授课,教师一对一指导学员做项目,全新打造“主流技术+前沿技术+企业级联动”教学课程,重新优化和定义JavaEE,采用最新版本技术开展教学,致力于为学员打造最牛的、最新的技术,助力学员拿下BAT级企业Offer。现在咨询还可以获得两周免费试听机会,亲身实地感受教学品质!更多Java行业动态和学习资料,可以关注“武汉千锋”微信公众号。

2021中使用的10个最佳Java框架

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

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

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

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

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

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

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

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

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

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

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开发人员的职业生涯的一个很好的起点。

虽然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的完整概述。

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

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

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

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

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

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

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

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

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

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

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

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

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应用程序。

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

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

框架中有3个主要层 –

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

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

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

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

Play的一些特征是 –

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

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

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

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

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

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

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。

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中的可重用组件。

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

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

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

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

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

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

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

由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虚拟机的益处,它使得强大且强大的组合。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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》,

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。