为什么要放弃ssh框架
本文是转载他人的,觉得很好,分享!
最近听一些朋友说,招聘面试的很多人简历都差不多,大部分人的简历上面都写了熟悉ssh框架,
我朋友就在吐槽,为什么这些人简历都差不多,并且都熟悉ssh框架? 后面他说, 可能这些人都是培训机构出来的, 然后培训机构对于完全外行的人都是简单培训了基本的java语法,然后介绍ssh的概念和简单的使用,
然后吹嘘ssh多么牛逼,然后再通过一个简单的实战项目,然后帮你做好简历,就算完成了培训。 听到他这一番话,多少心中有些触动。我不是排斥ssh有什么不好,ssh在很多年前是不错的三个框架(现在struts已经没落 ,spring很春天,hibernate不温不火),
只是觉得现在培训机构还在教这个是有点过时了, 花费了学生的时间,并且出去可能也找不到工作(如果现在只是说会ssh,又没有其他方面的知识,确实很难找工作) 为什么说ssh已经过时了?那就要首先知道ssh到底是什么? struts2:通俗的讲就是为了完成MVC模型中的C的功能,也就是编写具体的业务逻辑的地方。
从他的设计上来看就是请求到了web容器,然后经过了一系列的过滤器,再通过请求FilterDispatcher询问ActionMapper是否需要调用某个Action,
如果要调用的话, 然后执行先前配置好的拦截器,就到了我们的具体逻辑,执行完之后,还会继续执行对应的拦截器和过滤器逻辑,最后返回给调用方。 Spring: 通俗的讲只是通过它的核心IOC来管理我们编写逻辑中间的一些bean。我们通过IOC来减少耦合和简化对象的操作。 Hibernate: 是对象关系映射框架,简单的说,它就是对JDBC进行了非常轻量级的对象封装,目的是让操作数据库像操作对象一样简单。 这个就是ssh三者最开始的目的,他们各司其职,在缺乏框架的年代,很好的配合着,以至于一直流传了下来。 介绍完了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框架去培训机构了, 总结:
ssm框架,老一点项目spring struts2 mibatis。
现在主流是spring spring-mvc mibatis。
为什么要放弃ssh框架的更多相关文章
- SSH框架优缺点
		
SSH框架优缺点 开源是3个框架共有的优点 Struts2框架(MVC框架)的优点如下: 1) 实现了MVC模式,层次结构清晰,使程序员只需关注业务逻辑的实现: 2) 丰富的标签库,大大提高了开发 ...
 - maven项目ssh框架的整合
		
1.环境 eclipse版本:Eclipse Mars2 4.5jdk版本:1.8maven版本:apache-maven 3.3.9zhnegs这是主要的开发工具版本,ssh的各种jar包版本就不列 ...
 - 简化SSH框架的整合
		
一.开发环境: (1) OS:Windows 7 (2) DB:MySql 5.1.6 (3) JDK:1.8.0_17 (4) Server:Apache Tomcat 8. ...
 - SSH框架整合
		
SSH框架整合 一.原理图 action:(struts2) 1.获取表单的数据 2.表单的验证,例如非空验证,email验证等 3.调用service,并把数据传递给service Service: ...
 - 基于SSH框架的网上商城的质量属性
		
常见质量属性 1.性能 性能就是一个东西有多快,通常指响应时间或延迟. 响应时间:从发出请求到收到响应所用的时间,比如用户点击网页中的超链接或桌面应用程序中的按钮 延迟:消息从A点到B点,通过你的系统 ...
 - 【Java EE 学习 69 中】【数据采集系统第一天】【SSH框架搭建】
		
经过23天的艰苦斗争,终于搞定了数据采集系统~徐培成老师很厉害啊,明明只是用了10天就搞定的项目我却做了23天,还是模仿的...呵呵,算了,总之最后总算是完成了,现在该好好整理该项目了. 第一天的内容 ...
 - 基于SSH框架的学生公寓管理系统的质量属性
		
系统名称:学生公寓管理系统 首先介绍一下学生公寓管理系统,在学生公寓管理方面,针对学生有关住宿信息问题进行管理,学生公寓管理系统主要包含了1)学生信息记录:包括学号.姓名.性别.院系.班级:2)住宿信 ...
 - 对于SSH框架的选择
		
选择框架:SSH 对于Web开发来说,SSH框架可以提高开发效率,还可以方便需求的变更以及对后期维护方面更容易操作.SSH也是目前稍微流行的Web开发框架. 选择框架描述: 首先说明一下SSH并不是一 ...
 - struts2+spring+hibernate(SSH)框架的搭建和总结
		
SSH框架:struts2+spring+hibernate,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. struts2+spring+hibernat ...
 
随机推荐
- iOS 热更新方案 - lance的专栏 - 博客频道 - CSDN.NET
			
iOS 热更新方案 - lance的专栏 - 博客频道 - CSDN.NET Weex
 - ookla 网络上传下载 PING 测试
			
1.登陆http://www.ookla.com/ 2.点选Explore Speedtest Custon 3. 1.start for free 或者 2.measure your network ...
 - servlet匹配路径时/和/*的区别(转)
			
本文转自https://blog.csdn.net/rongxiang111/article/details/53008829 一.<url-pattern>/</url-patte ...
 - SpringMVC整合fastjson、easyui 乱码问题
			
一.框架版本 SpringMVC:3.1.1.RELEASE fastjson:1.2.7 easyui :1.4.5 二.乱码现象 Action中使用@ResponseBody返回Json数据 ...
 - Go:Hello World!
			
备注 结束了一周紧张的工作,周末像品茶一样玩味一下Go,本文主要记录学习Go的经历. Go是什么? 官方网站:http://golang.org/. 在Windows下安装Go 官方教程:http:/ ...
 - Java垃圾回收精粹 — Part1
			
Java垃圾回收精粹分4个部分,本篇是第1部分.在第1部分里介绍了权衡点.对象生命周期以及全局暂停事件. 串行.并行.并发.CMS.G1.年轻代(Young Gen).新生代(New Gen).旧生代 ...
 - onehot的好处,还是可以看看的
			
https://www.jqr.com/article/000243 一句话概括:one hot编码是将类别变量转换为机器学习算法易于利用的一种形式的过程. 类别值是分配给数据集中条目的数值编号. s ...
 - VS2010  OpenCL运行环境配置
			
1.安装AMD GPU显卡驱动(安装后重启) 13-12_win7_win8_64_dd_ccc_whql.exe 2.安装AMD OpenCL SDK(安装后重启) AMD-APP-SDK-v2.9 ...
 - 使用ssh向sqlserver2005数据库中保存image类型的二进制图片
			
1.首先设计数据库表,其中photo.photo2字段均为image类型的. 2.建立实体bean对象,设置两个字段为byte[]如:private byte[] photo; private byt ...
 - osglightpoint例子 [转]
			
该例子演示了光点的效果,主要应用osgSim库中的LightPoint.LightPointNode. SequenceGroup.BlinkSequence,osgSim库属于仿真库,扩展库.应用o ...