最近听一些朋友说,招聘面试的不少人简历都差很少,大部分人的简历上面都写了熟悉ssh框架,我朋友就在吐槽,为何这些人简历都差很少,而且都熟悉ssh框架?前端
后面他说, 可能这些人都是培训机构出来的, 而后培训机构对于彻底外行的人都是简单培训了基本的java语法,而后介绍ssh的概念和简单的使用,而后吹嘘ssh多么牛逼,而后再经过一个简单的实战项目,而后帮你作好简历,就算完成了培训。java
听到他这一番话,多少心中有些触动。我不是排斥ssh有什么很差,ssh在不少年前是不错的三个框架(如今struts已经没落 ,spring很春天,hibernate不温不火),只是以为如今培训机构还在教这个是有点过期了, 花费了学生的时间,而且出去可能也找不到工做(若是如今只是说会ssh,又没有其余方面的知识,确实很难找工做)web
为何说ssh已通过时了?那就要首先知道ssh究竟是什么?面试
struts2:通俗的讲就是为了完成MVC模型中的C的功能,也就是编写具体的业务逻辑的地方。spring
从他的设计上来看就是请求到了web容器,而后通过了一系列的过滤器,再经过请求FilterDispatcher询问ActionMapper是否须要调用某个Action,若是要调用的话, 而后执行先前配置好的拦截器,就到了咱们的具体逻辑,执行完以后,还会继续执行对应的拦截器和过滤器逻辑,最后返回给调用方。数据库
Spring: 通俗的讲只是经过它的核心IOC来管理咱们编写逻辑中间的一些bean。咱们经过IOC来减小耦合和简化对象的操做。后端
Hibernate: 是对象关系映射框架,简单的说,它就是对JDBC进行了很是轻量级的对象封装,目的是让操做数据库像操做对象同样简单。安全
这个就是ssh三者最开始的目的,他们各司其职,在缺少框架的年代,很好的配合着,以致于一直流传了下来。mybatis
介绍完了ssh的本质,接下来介绍一下这三个组件如今的发展状况。架构
首先struts2框架最近爆出了不少高危漏洞,使的应用的安全有了很大程度的隐患。而后不少作法也不够优雅,特别是JSR-311标准出台以后,随着Restful方式的流程程度普及开来,struts2愈来愈被你们所抛弃,虽然struts2也加入了一些plugin来进行支持REST,可是仍是过于繁琐。因此致使了如今struts2的没落。
而后spring以IOC为核心,而后进行大力扩展,前后推出了SpringMVC来完成逻辑层的编写逻辑,如今SpringMVC基本已经完成了替代struts2的工做(一些很老的项目可能没有进行改造)。而后在SpringMVC大获成功以后,基于SpringMVC和web容器,把他们二者进行结合,推出了SpringBoot,通过几年的发展和酝酿,如今后端基本被Spring系列所统一。因此如今要我来说,后端框架的王者就只有一个Spring系列了。
最后Hibernate只是一个对操做数据库进行映射的框架,有不少也能够替代,好比ibatis, mybatis, JPA等等,由于orm有本身的优势也有本身缺点,就看使用者如何进行权衡了。从我我的的意见来看,简单的业务逻辑直接用JPA(Spring基于Hibernate的封装)就能够了,若是是复杂的,还不如直接写SQL来得简单,调优也方便。
为何说ssh已通过时?
如今提倡和流行的是先后端分离(这里指的分离是彻底分离,而不是以前经过模版进行分离,先后端数据交互是根据http进行的)。而且后端设计的接口趋向于Restful的架构。为何有这种变化,由于如今前端不只仅是web端,在移动互联网时代,app也是很大一部分。因此从后端的角度来看,他们都是客户端。app是没办法经过模版进行渲染的,只能经过http传输数据。这也是后端服务发展的趋势。
Java后端技术有不少,若是想要提升,最好的捷径就是踏踏实实的进行学习,对于刚工做不久的人来讲,能够把学习ssh框架的时间用来学习SpringMVC,而后掌握Spring的核心,而后学习什么是Restful概念,最后能够了解JDBC的一些概念(前期不推荐学习ORM框架)。我相信能够有所收获和成长的。
最后不建议再去冲着学习ssh框架去培训机构了,而后附上了我我的针对于经验较少工程师的所建议学习路线。
最后若是以为所讲的东西可以帮助到你,而且但愿了解更多的知识,进行更详细的深刻的学习,欢迎加群632109190进行讨论和学习。