ssh之为什么要放弃ssh?
本文经转载, 源出处不详.https://www.cnblogs.com/hackxiyu/p/6849085.html
最近听一些朋友说,招聘面试的很多人简历都差不多,大部分人的简历上面都写了熟悉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框架
本文是转载他人的,觉得很好,分享! 最近听一些朋友说,招聘面试的很多人简历都差不多,大部分人的简历上面都写了熟悉ssh框架,我朋友就在吐槽,为什么这些人简历都差不多,并且都熟悉ssh框架? 后面他说, ...
- Gravitational Teleport 是一个先进的 SSH 服务器,基于 Golang SSH 构建,完全兼容 OpenSSH
Gravitational Teleport 是一个先进的 SSH 服务器,可通过 SSH 或者 HTTPS 远程访问 Linux 服务器.其目的是为了替代 sshd.Teleport 可以轻松让团队 ...
- git错误--ssh: Could not resolve hostname ssh.github.com: Name or service not known--解决方式
错误如下: git push origin ssh: Could not resolve hostname ssh.github.com: Name or service not known fata ...
- 不能ssh连接ubuntu linux 服务器 secureCRT不能ssh连接服务器 不能远程ssh连接虚拟机的ubuntu linux
我是用的是secureCRT,远程连接我的虚拟机里面的ubuntu 直接报错,连接不上 1,先分别在windows上ipconfig和ubuntu上ifconfig下 互ping一下,是可以ping通 ...
- SSH连接GitHub并配置ssh key
SSH连接GitHub并配置ssh key 配置git的ssh提交,主要需要以下三步: 1.设置Git的user name和email 2.生成ssh 3.配置git 的ssh key 一.设置Git ...
- git ssh免登陆,以及ssh config
git去连接github或gitlab上的远程仓库,可以使用ssh方式,也可以使用git的账号密码登录 这里介绍使用ssh方式实现免登陆(第一步和第二步即可实现) 第一步:生成ssh秘钥 ssh- ...
- Debian9安装SSH并允许root用户SSH登录
安装SSH # apt install openssh-server openssh-client 启动SSH服务 # /etc/init.d/ssh start 添加SSH开机启动 # update ...
- SSH 学习记录及在SSH模式下使用XShell连接服务器
传统的网络服务程序,如rsh.FTP.POP和Telnet其本质上都是不安全的:因为它们在网络上用明文传送数据.用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击 ...
- Python-黑客-004 用Python构建一个SSH僵尸网络-02 手动与SSH交互
用Python构建一个SSH僵尸网络-02 手动与SSH交互 - 登录SSH服务器端的 root 用户 我的电脑(攻击者)的系统:Ubuntu14.04 : 用户名: aobosir@ubuntu:~ ...
随机推荐
- iOS获取网络类型的四种方法
Reachability类只能区分WIFI和WWAN类型,却无法区分2G网和3G网. 网上也有些方法,却都存在Bug. 经过网上查找资料和测试,基本上总结了以下几种方法: 1.使用导航栏的方式:(私有 ...
- Java输入输出处理技术1
1.保存用户输入到文件 从键盘读入一行字符,写到文件output.txt中去. package io; import java.io.*; public class MyFileOutput { pu ...
- 我所遭遇过的中间件--VTK
我所遭遇过的中间件--VTK Vtk是我接触的第一款软件开发包,它引导我对图形学的入门.我是先学的VTK,后学的OpenGL和D3D.VTK是专为图形学开发,特点是接口清晰,好上手,又含有大量的图像处 ...
- RequireJS 参考文章
入门: http://www.cnblogs.com/snandy/archive/2012/05/22/2513652.html http://www.cnblogs.com/snandy/arch ...
- Java基础(十二):包(package)
一.Java 包(package): 为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间.包的作用: 1.把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用. 2.如同文件夹 ...
- Java基础(二):基本数据类型和变量类型
一.java基本数据类型: 变量就是申请内存来存储值.也就是说,当创建变量的时候,需要在内存中申请空间.内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据. Java 的两 ...
- rsync同步数据---把左边的文件全部拷贝到右边
背景,配置好了ssh 使用rsa pulbic key的方式登陆远程服务器.//ssh-keygen -t rsa -b 2048 -f andy-rsync-key -P '' https://he ...
- htmlDOM树
原文: https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_shadow_DOM Shadow DOM API 研究一 ...
- RS错误RSV-VAL-0032之项目未在布局中引用的3种解决办法
如下图所示,我用RS新建了一个空白页面,拖入了一个列表,给该列表新建了一个条件样式 条件样式如下所示,表达式来自查询1 运行,报错如下图所示 原因就是条件样式使用到了查询1中的数据项1但是数据项1在报 ...
- 【Struts2学习笔记(9)】单文件上传和多文件上传
(1)单文件上传 第一步:在WEB-INF/lib下增加commons-fileupload-1.2.1.jar.commons-io-1.3.2.jar. 这两个文件能够从http://common ...