当前位置: 移动技术网 > IT编程>开发语言>Java > 目前Java后端有哪些不是很有必要去学的?

目前Java后端有哪些不是很有必要去学的?

2019年04月18日  | 移动技术网IT编程  | 我要评论

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

javaee框架,从百家混战到现在spring基本一统天下。

web开发,从标配的ssh到现在spirngmvc + mybatis组合。

ide,从当年如火如荼的jbuilder到eclipse,再到更好用的idea。

在上一篇的文章中,我分享了如何快速有重点的学习java。

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

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

实际开发能否用到?
是否有助于加深对技术的理解?
对面试是否有用?
jsp
jsp在实际开发中,主要是作为mvc模型中的v(view)层出现的。当然,view层的渲染技术除了jsp,还有freemaker、velocity等。

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

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

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

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

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

struts
在java后端开发中,mvc模型还是主流。而struts作为一个mvc框架,单从技术上来说,还是很优秀的。

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

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

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

因此现在,很多公司,老的struts项目还在维护。但新的项目开发,更多转向了spring mvc。因此,如果你是java新手,正在学习中,我的建议是:

“不要再学习struts了,从spring mvc开始吧!”

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

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

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

学习成本高
配置复杂
调优困难
前两点不难理解,单说“调优困难”。

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

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

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

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

“不需要再学习hibernate了,学mybatis就够了。”

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

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

servlet不仅要学,而且要学深,学透。

在入门学习java的过程当中有遇见学习,行业方面的问题你可以加入我的java学习交流裙:六一五,七四一,六三六。qun文件有我这几年整理的java学习手册,面试题,开发工具,pdf文档书籍,你可以自行下载。

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

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

 所以,如果你想要彻底掌握某个mvc框架,则必须彻底理解servlet。

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

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

所以,如果你正在学习java,对servlet,我的建议是:

“servlet不仅要学,而且要学深,学透。”

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

1.applet

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

2.swing

作为桌面ui框架。且不说本身设计的咋样。现实开发中,我接触的桌面应用,要么用c++(例如mfc),要么用c#(winform、wpf)。所以,swing就没有学习的必要了。

3.jdbc

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

4.xml

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

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

最后,祝你学习顺利。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网