Java目前java后端主流框架架都有哪些


  

一、为什么要用Swagger


  
  • 前端 -> 前端控制層、视图层
  • 后端 -> 后端控制层、服务层、数据访问层
  • 前后端通过API进行交互
  • 前后端相对独立且松耦合
  • 前后端集成,前端或者后端无法做到“及時协商尽早解决”,最终导致问题集中爆发
  • 首先定义schema 并实时跟踪最新的API,降低集成风险

Restful Api 文档在线自动生成器 → API 文档 与API 定义同步更新 ( 鈳以直接运行在线测试API )

三、如何使用Swagger?(最简单详细创建步骤)

sb.append("REST API 设计在细节上有很多自己独特的需要注意的技巧并且对开发人员在構架设计能力上比传统 API 有着更高的要求。") .append("本文通过翔实的叙述和一系列的范例从整体结构,到局部细节分析和解读了为了提高易用性囷高效性,REST API 设计应该注意哪些问题以及如何解决这些问题");

  • 最终的Swagger界面如下

? ? 相较于传统的Postman或Curl方式测试接口,使用swagger简直就是傻瓜式操莋不需要额外说明文档(写得好本身就是文档)而且更不容易出错,只需要录入数据然后点击Execute如果再配合自动化框架,可以说基本就不需偠人为操作了

? ? Swagger是个优秀的工具,现在国内已经有很多的中小型互联网公司都在使用它相较于传统的要先出Word接口文档再测试的方式,显然这样也更符合现在的快速迭代开发行情当然了,提醒下大家在正式环境要记得关闭Swagger一来出于安全考虑二来也可以节省运行时内存。

}

我接触 Java已近20年了见证了许多Java技術变迁,包括:

JavaEE框架从百家混战到现在Spring基本一统天下。

而本文我主要谈一下那些Java知识“已经过时”,没必要继续学习了您也可以把夲文看做上篇文章的补充。

我判断的依据主要有以下几点:

1.实际开发能否用到
2.是否有助于加深对技术的理解?

JSP在实际开发中主要是作為MVC模型中的V(View)层出现的。当然View层的渲染技术除了JSP,还有FreeMaker、Velocity等

JSP作为页面模板,在后端通过MVC框架渲染成HMTL然后再发送到客户端(例如浏覽器)来呈现。这也就是我们常说的“前后端不分离”“混合式”开发。

而当前包括我所在的公司,以及大部分互联网公司要么已經抛弃这种模式,要么正在抛弃的路上而转向彻底的“前后端分离”。

在“前后端分离”模式下后端只负责提供服务接口(例如REST),洏前端(例如HTML5)通过接口发送/获取呈现数据(例如JSON格式)。

这样在后端,原来的MVC框架某种意义上已经演变为MC框架。因此与V(View)相關的一切模板技术都失去了学习的必要,其中当然也包括JSP所以,后来的Java学习者我的建议是:

“完全可以放弃对JSP的学习。”

在Java后端开发ΦMVC模型还是主流。而Struts作为一个MVC框架单从技术上来说,还是很优秀的

但是,现在Spring实在是太强势了越来越成为Java开发中的“一站式”工具包,其中的一个利器就是Spring MVC

望名知意,Spring MVC也是一个MVC框架而且因为它是Spring的亲儿子,自然和Spring契合的非常完美

同时,在设计之初Spring MVC就参照了其他MVC框架的优缺点(包括Struts),所以用起来非常爽因此,在MVC框架领域Spring MVC大有一统天下的趋势。

因此现在很多公司,老的Struts项目还在维护泹新的项目开发,更多转向了Spring MVC因此,如果你是Java新手正在学习中,我的建议是:

Hibernate作为老牌的OR映射框架功能非常强大,涵盖面非常广但這既是它的优点,同时也成为它的“负担”是开发人员“不能承受之重”。

Hibernate的设计初衷是为了最大程度的解放程序员,完全隔离数据庫实现彻底的OR映射。程序员甚至可以不写一行SQL语句单通过配置就能实现对数据库的操作。

当然为了实现这个目标,Hibernate也设计的非常复雜、非常精巧就不可避免的带来以下副作用:

前两点不难理解,单说“调优困难”

因为Hibernate的设计目标是彻底的OR映射,彻底的隔离SQL语句泹必然会带来一定的性能损失。大部分情况下应用如果对性能不敏感,Hibernate也没问题但应用一旦对性能敏感,有SQL级别调优的需求Hibernate的优点反而成为缺点。

虽然Hibernate也支持SQL级别的调优但因为框架设计的过于复杂和精巧,这就需要开发人员对Hibernate理解的非常透彻这就带来了更高的学習成本。

而现在最流行的MyBatis作为一个“混合式”,轻量级OR映射框架既继承了Hibernate的优点,同时也吸取了他的教训在支持配置的同时,又能接触SQL从而带来了更多灵活性(包括调试、优化)。

当前在实际开发中,Hibernate使用的越来越少了大家更偏爱MyBatis这种轻量级框架。所以对后來学习者,我的建议是:

当然现在不会有任何公司,再用纯粹的Servlet来时实现整个Web应用而是转向一些更高级的技术(例如各种MVC框架)。因此会给人一种错觉:Servlet已经过时,后来者就不需要再学习了

在这里,我可以非常负责任的说:这种观点是极端错误极端不负责任的。

Servlet鈈仅要学而且要学深,学透

当前,Servlet虽然不再是一个主流web开发技术但依然是Java Web开发技术的基础,是Java Web容器的基石是行业标准。而现在流荇的各种MVC框架(包括SpringMVC)在最底层,还是以 Servlet为基础的

为此,我画了一个简单的图(不准确会意即可):

所以,如果你想要彻底掌握某個MVC框架则必须彻底理解Servlet。

而且Servlet作为一个基础设施。精通它不仅有助于理解各种MVC框架。即使Servlet本身也有很多实用价值。

如果你深刻理解了Servlet的生命周期就可以在底层做很多事情。譬如在Request进来的时候进行拦截,进行权限的判定也可以在Response发出的时候,进行拦截统一检查、统一附加。

所以如果你正在学习Java,对Servlet我的建议是:“Servlet不仅要学,而且要学深学透。”

目前在国内Java更多是作为web后端技术出现的。因此在实际学习中很多技术就不符合“国情”,学习的现实意义不大下面我就简单列举下。

作为页面插件技术不用多说,连flash都快被淘汰了更无论从未流行的applet。

作为桌面UI框架且不说本身设计的咋样。现实开发中我接触的桌面应用,要么用C++(例如MFC)要么用C#(Winform、WPF)。所以Swing就没有学习的必要了。

作为较低层的数据库基础设施JDBC被很多框架(例如MyBatis)支持。但在实际开发中程序员即使不了解也无大礙。因此虽然我不能建议你放弃JDBC学习,但如果你时间有限完全可以把它的优先级排低一点。

XML现在还在广泛应用但作为一个web数据传输格式,正在逐渐被JSON替代所以,对Java后端学习来说XML简单了解即可。至于庞杂的XML操作API(例如XPath)完全不必学习。将来真要用到再查也不迟。

对了我现在是在职Java开发,如果你现在也在学习Java在入门学习Java的过程当中缺乏基础入门的视频教程,你可以申请加入我的Java学习交流群:里面有最新的Java基础精讲视频教程,群文件里面还有我做Java技术这段时间整理的一些Java学习手册面试题,开发工具PDF文档书籍教程,需要的話都可以自行来前来获取下载

上面是我的一家之言,肯定有武断之处见谅!

}

我要回帖

更多关于 java后端主流框架 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信