现在有啥好用的java开发框架

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了现在有啥好用的java开发框架相关的知识,希望对你有一定的参考价值。

分享10个最好的工具、框架和库,以帮助 Java 开发人员在不同的 Java 项目中更好地执行单元测试和集成测试。

▌JUnit

JUnit 应该不需要过多介绍。哪怕你是一位 Java 初学者,我想你也应该听说过它,它能够让你为 Java 代码编写单元测试。

几乎所有常用的 IDE,比如 Eclipse、NetBeans 和 IntelliJ,都能够集成 JUnit,这意味着开发者直接可以在这些 IDE 中编写并运行单元测试。

目前大多数人仍然在使用 JUnit 4,事实上新的 JUnit 5 已经发布。你可以用 JUnit 进行单元测试和集成测试,此外,它还支持 Java 8 功能。

▌REST Assured

相比于 Groovy 这类动态语言,在 Java 中测试和验证 REST 服务更难。

REST Assured 为 Java 带来了这些语言的简单性。这对于 REST API 集成测试来说是一个很好的工具。

▌Selenium

Selenium 应该是最受欢迎的 Java UI 测试工具,有了它,你不需要在浏览器中启动 JSP 页面即可对其进行测试。

你可以使用 JUnit 和 Selenium 来测试 Web 应用程序 UI。还可以使用它进行 Web 应用程序验收测试。

▌TestNG

TestNG 这款测试框架最早源于 JUnit 和 NUnit 的启发,但它在这两者的基础上引入了许多新的功能,其功能更强大,也更易于使用,提供了注解功能,支持在任意大型线程池中运行各种可用策略的测试(所有方法都在自己的线程中,每个测试类对应一个线程)。

随着 JUnit 4 中注解功能的引入以及 Hamcrest 框架的整合,JUnit 4 和 TestNG 之间的差距已经很小。

▌Mockito

Java 有许多 Mock 框架,例如 PowerMock 和 JMock,但我个人更喜欢 Mockito,它具有简单的 API、优秀的文档以及大量示例。

Mock 测试是现代单元测试的关键技术之一,开发者不需要依赖其他情况也可独立测试代码,因此我建议每个 Java 开发人员都应该学习 Mock 框架来与 JUnit 结合使用。

我个人最喜欢的 Mock 框架是 Mockito,如果你喜欢的话,也可以了解一下 PowerMock或者 JMock。

▌Spock 框架

Spock 是一款用于 Java 和 Groovy 应用程序的测试和规范框架。它用 Groovy 编写,因此它具有很强的表现力,并且非常规范。

使用 Spock 时,测试将变得更加易读易维护。此外,得益于它的 JUnit 运行器,Spock能够兼容大多数 IDE、构建工具和持续集成服务器。

不过遗憾的是,线上讲述 Spock 框架的课程好像不多,“使用 Spock 进行 Java 测试”这本书倒是一个不错的学习资源。

▌Cucumber

Cucumber 是一款很好的自动化集成测试工具,与其他同类工具相比,它的规范功能是一大特色。

Cucumber 将规范和测试文档合并为一个文档,由于文档也会被 Cucumber 自动测试,因此规范文档始终会被更新为最新版本。

▌Spring 测试

Spring MVC 自带了一个非常有用的测试框架,可以在不涉及 Web 容器的情况下进行深入测试。

这个是一个非常有用的库,可以为 Spring 应用程序编写自动化测试。它为 Spring 应用程序(包括 MVC 控制器)编写单元和集成测试提供了强有力的支持。

还有一个 Spring Test DbUnit,它将 Spring 测试框架与 DbUnit 以及 htmlUnit 集成在了一起。

使用这些工具,你可以轻松完成 Spring MVC 应用程序的自动化测试。

▌DBUnit

对于大多数的 Java 应用程序,不管是核心 Java 程序还是 Java Web 应用,数据库都是其不可或缺的重要组成部分,并且数据库还很可能是单元测试的最大障碍。

连接到 Dev 或者 UAT 数据库进行集成测试是不可靠的,因为任何人都可以更改数据和模式,比如表和存储过程,这都会导致自动化集成测试的失败。

DbUnit 是 JUnit 的扩展,在每次集成测试之前它可以将数据库初始化为已知状态,从而确保数据库包含正确的数据。

DbUnit 是一个非常有用的工具,它可以帮助我们将测试数据和测试代码分开。

▌Robot 框架

Robot 框架是一个基于 Python 的通用自动化测试框架,主要用于验收测试以及验收测试驱动开发。

它采用表格测试数据语法,是一个关键字驱动的测试框架。分布式异构应用程序的验证往往需要多种技术和接口,非常适合用 Robot 来测试。

参考技术A

毫无疑问,在现如今的互联网时代里,Java是目前最需要最热门的编程语言之一。在这里,千锋武汉Java小编已经挖掘了一些关于框架趋势的有用信息,以减轻全球软件开发人员的日常工作。

1、Spring MVC

姜还是老的辣,Spring MVC自从它第一次发布已经有了十多年的历史,但仍然处于领先地位。在为了拥抱完整的MVC框架的扩展之后,Spring继续保持发展变化,并转变成为了面向Internet的应用程序的全面Java框架,为软件工程师在Web应用程序开发和应用程序配置以及安全项目上提供了强大的工具包。作为程序员中最受欢迎的框架之一,Spring有一个得到很好开发的生态系统,提供各种附加选项:REST API或SOAP Web服务,安全(身份验证和授权,加密)等。选择它还有一个好处是很多大公司里的开发同行也选择用这个特定的Java框架。因此,他们可以为你提供你所需的查询帮助。

优点和缺点

没有理由的,Spring在图表的顶部没有嵌套。它是最好和最知名的Java框架之一,因为:

    通过使用POJO简化测试数据的注入。

    增强的模块化,导致更好的代码可读性。

    不同模块之间的松散耦合。

    依赖注入(DI)灵活使用。

虽然并非框架直接的一个缺点,忽略参考文档数量,Spring MVC可能并非Java新手开发人员可以轻易掌握,它的学习曲线过于陡峭。因此,处理这个Java框架的某些部分可能会有点难,如果你碰上一个糟糕的参考文档的话。你可能会发现不同版本之间的信息有所不同。

顺便说一句,由于我们工程师的伟大经验,Spring MVC是我们最喜欢的框架之一。

2、Struts 2

为了更详细地阐述为现代软件工程师广泛使用的现有Java框架,我们决定引用Apache的Struts 1(Struts 2)的后续版本。这个Java框架对于那些构建当代Java EE Webapp的工程师来说真是一个不错的发现。Apache Software Foundation为开发人员提供了一个广泛的工具,用于创建面向企业的web应用程序,优化了从开始到最终点的开发过程以及后期维护。如果你正在对高负载系统(如广播门户)愁眉不展,那么这是一个正确的选择。

由于Struts 2实现好了的Action类(普通POJO对象),测试编写代码所需的工作量减轻了。使用框架的API,耦合变得更容易,这也有助于调整拦截器。

优点和缺点

当你问自己为什么应该考虑Struts 2的时候,那就想想不必重写或实现Action类的奢侈——它已经就位了! IT工程师需要为多个操作而创建重复设置的代码不再是一个问题,因为拦截器会处理它。

然而,你可能会因为这个Java框架的庞大体型而望而却步:一些程序员发现它不够灵活。

3、Hibernate

虽然也不是在RebelLabs的列表中,但在讨论最好的Java框架时,Hibernate值得一提。这种映射Java框架通过替换持久化的DB访问高级对象处理函数来破解对象关系阻抗不匹配问题。随着每个企业应用程序开始都有这样的问题,Hibernate配备了一个伟大的功能套件,来帮助后端开发人员微调数据访问层。这是一个高级的ORM框架,允许你对Java对象(实体)执行数据库操作。它是一个持久性的概念——利用Hibernate缓存将数据从Java环境持久化到数据库。

优点和缺点

Hibernate允许你使用你写的代码中的微小变化与任何数据库通信,弥合对象和关系词之间的差距。最重要的是:

    Oracle,Db2或mysql,Hibernate是独立于DB的。

    通过相似查询的缓存机制到bug数据库。

    N + 1或延迟加载支持。

虽然它有这些明显的优势,但Hibernate不允许多个插入,不允许JDBC可以做的一些查询。此外,对于具有较少表格的小规模项目,此Java框架可能不是一个好的选择。

4、JSF

作为Java EE的一部分,Oracle支持JavaServer Faces。虽然不是快速Java开发的最好框架,但它很容易使用,因为Oracle提供了伟大的文档。此外,在你使用Java EE环境之时,你会发现JSF没有外部依赖,反而提供了大量功能。丰富的库和工具(包括一个方便创建用户界面的工具集)使之成为了一个魔术棒,来支持你面对无论看起来有多复杂的应用程序。

优点和缺点

如上所述,JSF是Java EE的一个组成部分。因此,开发人员利用IDE软件套件以及来自行业领先供应商最好水平的支持。

另一方面,JavaServer Faces太庞大,以致于对于那些在web开发基础上的经验和技能不够坚固的人而言,非常难以理解。

5、Vaadin

使用GWT渲染结束网页,Vaadin成为了现代开发人员在创建业务应用程序时选择的流行框架之一。利用一个众所周知的基于组件的方法,Vaadin通过将做的改变传达给浏览器来减轻了开发人员的负担。一个广泛的UI组件,以及各种小部件和控件,允许程序员随时构建酷酷的应用程序。

优点和缺点

在Java,HTML或两者中构建布局,Vaadin提供了使用或MVC或MVP绑定数据的机会。拖放支持以及其他突出的功能简化了Java应用程序单页UI的创建。

在缺点方面,移动应用程序的UI迟缓可能是一个问题,因为Vaadin将每个事件发送回服务器。

6、Google Web Toolkit

GWT是另一个免费的Java框架,允许程序员创建和优化复杂的基于Web的应用程序。 GWT软件开发套件提供核心Java API和小部件,用于构建之后编译为javascript的应用程序。

优点和缺点

使用Google Web Toolkit,你可以获得单个代码库(Java中的浏览器端和服务器端编程),从而简化开发和调试过程。与其他技术的简单集成允许程序员在Web页面中嵌入GWT小部件。自定义窗口小部件功能是另一个可以在GWT帮助下创建的好处。

然而,如果你是一个Web设计师,GWT可能并非Java框架的最佳选择;它对那些纯HTML和后期动态内容布局并不和蔼可亲。

7、Grails

这个特殊的Web框架因为其固执的API,合理的默认值,以及约定优于配置的范例,使之被当作是一个提高工程师生产力的动态工具。无缝的Java集成使得这个特殊的框架成为了全世界大量程序员的最佳选择。一系列强大的功能,例如Spring提供的依赖注入和各种插件,提供了创建现代基于Web的应用程序所需的一切。

优点和缺点

快速设置一个新的项目和支架为程序员节省了大量宝贵的时间。一个巨大的库提供了超过900种不同的易于安装的插件。尽管Grails是一个全栈开发的Java框架,但它还有一个Grails的对象关系映射覆盖的庞大功能,使其成为了一个相对笨重的软件。

那么选择什么呢?

在各种流行的Java框架中选择合适的概念可能是一个麻烦的任务,因为每个公司在选择获胜方法时都会坚持他们自己基于web和移动app创建的思想。无论你使用的是什么确切的框架,谨记许可证,易于安装,网络的活跃程度,以及手边的文档等。根据项目类型,有时,明智的做法是将所有工具放在一起挑选,但很多时候,“减肥”和转向一个轻量级的概念更有意义。

以上就是千锋武汉Java小编总结的7个最佳的Java框架。

移动端开发选择小程序和选择H5有啥不同?两者有何区别?

参考技术A 现在但凡只要是有微信的人都对微信的小程序不陌生,而且微信小程序的数量早已达到数百万个,其实现在不但只有微信小程序,包括支付宝、百度甚至头条等等都开始了自己小程序之路。这样企业在 开发移动端 的时候就会面临一个问题是选择 开发小程序 还是H5好呢?所以 济南文汇传媒 的我就来总结一下小程序和H5的区别,来看一下两者有何不同?让您能更好地选择。

首先先来看一下二者在概念上的区别:

小程序:就是依赖于微信或其他APP上的一个应用形式,无法脱离其所在的APP。

H5:可以单纯地认为是网页,用在移动端或者PC端的网页开发技术。

再来看一下二者其他方面的区别:

一、开发的成本不同

小程序因为是在特定的环境中去开发,所以它的组件、UI都是确定好了的,也不用去考虑兼容问题,修改的次数就会减少,这样成本会低一些。

H5在开发时会有开发工具的选择、框架的选择、UI的选择等问题,还要兼顾到浏览器是否兼容的问题,可能会面临多次修改,这样会增加成本。

二、加载速度的不同

在速度上,小程序依然基于APP端去实现,这样在使用时就感到很流畅。

因为H5是网页的原因,所以如果有很多功能或者图片需要加载的话,可能会比较慢一些。

三、运行环境的不同

前面我们说到了小程序只能在特定的APP端内运行,所以没有APP端也就无法使用小程序。

H5是网页,只要有浏览器就可以使用,手机自身的浏览器就可以使用。

四、用户体验的不同

H5网页是在浏览器内使用,如果网速不佳或者网页上需要加载的东西过多就会出现“很卡”的现象。

小程序在首次使用的时候是需要查找的,可能不会很精准,但是一旦使用之后页面加载等就会很流畅了。

好了,上面的这些内容就是关于小程序与H5之前的区别,其实两者各有优缺点,还是根本自身的成本问题或者需求进行选择吧。

以上是关于现在有啥好用的java开发框架的主要内容,如果未能解决你的问题,请参考以下文章

react.js开发有啥好用的开发工具

Hbuilder和eclipse有啥区别?哪个更适合前端开发?哪个更适合java开发?

java有啥常用开源的框架?

当今流行的PHP框架中各自都有啥特点,优缺点都在哪?

力软的C#开发框架好不好用?服务好不好?

Python有哪些好用的网站开发框架?