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:~ ...
随机推荐
- from __future__ import print_function
1.在python2.x的环境是使用下面语句,则第二句语法检查通过,第三句语法检查失败 from __future__ import print_function priint('good') pri ...
- centos6.8安装具有ngx_cache_purge模块的nginx1.10.3
CentOS-6.8 安装 Nginx1.10.3Nginx 环境准备:安装Nginx需要完成以下依赖的安装 1.gcc 安装:yum install gcc-c++ 2.PCRE pcre-deve ...
- poj 1201 Intervals 解题报告
Intervals Time Limit: 2000MS Memory Limit: 65536KB 64bit IO Format: %lld & %llu Submit Statu ...
- MICS:副本和纠删码混合存储系统
摘要 云存储系统的三个指标: 高可靠性,低存储开销,高读写性能. 这三个指标是没有办法同一时候满足的,许多时候须要进行tradeoff. 副本系统和纠删码是两种在存储系统中广泛使用的策略,它们在保证高 ...
- java web中servlet、jsp、html 互相访问的路径问题
java web中servlet.jsp.html 互相访问的路径问题 在java web种经常出现 404找不到网页的错误,究其原因,一般是访问的路径不对. java web中的路径使用按我的分法可 ...
- OTL翻译(2) -- OTL流的概念
OTL流的概念 任何的SQL语句.SQL语句块或存储过程,都是通过输入与输出变量进行处理参数与结果的. 如: 例1:一个SELECT语句把标量的输入变量作为WHERE子句部分的条件:同时SELECT部 ...
- mahout源码分析之DistributedLanczosSolver(六)完结篇
Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit. 接上篇,分析完3个Job后得到继续往下:其实就剩下两个函数了: List<Map.Entry< ...
- python 读写CSV文件
#-*- coding: UTF-8 -*- import csv import os def WriteToCsv(): '''写CSV文件''' titls = ['序号', '链接', '备注' ...
- WPF 处理路由事件
(1)img.MouseUp+= img_MouseUp;(2)调用 UIElement.AddHandler()直接连接事件:img.AddHandler(Image.MouseUpEvent, n ...
- 学习技巧-如何在IBM官网寻找学习资料
场景:最近看招聘职位TM1比较火,于是就想找一下Cognos TM1的资料来拜读一下,然后论坛都是大价钱的金币,迫于无奈只好来到IBM的官网来寻求指导 http://www.ibm.com/us/en ...