设为首页 收藏本站
查看: 713|回复: 0

[经验分享] 论SSH框架 —— 一个狮子座程序员的大言不惭!

[复制链接]

尚未签到

发表于 2017-3-1 09:52:03 | 显示全部楼层 |阅读模式
论SSH框架 —— 一个狮子座程序员的大言不惭!
SSH和Leopard深入对比
  记得很多很多年前,在Java Web开发的世界里,SSH(Struts、Spring、Hibernate、)这个框架是很火的?火到什么程度呢?在当时你如果说不懂SSH,你都不好意思说你是搞Java Web发的。现在回想起来,这个框架实在是太过扯蛋!而且扯得蛋很疼!导致至今仍有很多很多Java Web开发者前扑后继的去学习这个架构!
  我是一个写了很多年程序的老程序员,我对这个现象感到很痛心!仅仅是因为我们的程序员同学都太过依赖旧的技术,不愿与时俱进!
  下面我们来分析SSH为什么会这么流行?又怎么样来改变这个现状?
  Struts是MVC模式web框架公认的标准,在Spring还没有出来的时候。Struts已经很流行了,大大小小的web项目都使用struts进行开发,这为后来的SSH框架垫定了稳固的江山。
  后来,Spring出来了,他宣传的是依懒注入和控制反转,把主要精力放到了如何在模块之间解耦上去了。很多框架师也确实认同Rod Johnson,纷纷也将Spring引入到了项目中去。而Hibernate在持久化上也确实做到了很成功,因此桃园结义就此拉开!SSH一个强大的框架,就此诞生!Struts 负责MVC,Spring负责解耦,Hibernate负责数据持久化,分工明确!各自在自己的地旁上呼风唤雨!
  SSH这个框架,看似很好?但我却认为很复杂。为什么一个人能干好的活,非要交给三个人干呢?这里也许是包含各种历史原因,也许是因为太多的程序员的惰性思维。不管怎么样,我认为程序员应该创新,应该与时具进!
  直到有一天,我看到了一个很牛逼的网站http://leopard.io/。作者开发了一个叫作Leopard的框架。这个框架基于Spring开发,在Spring MVC、Spring JDBC上做了深入的封装,将困扰众多WEB开发者的问题,一一化解!
  我深入研究了这个框架,并对SSH和Leopard进行了一个深入的对比:
  SSH,我就用一句话来描述:使用了各框架之所长!
  Leopard,我想深入列举一下:
WEB MVC功能
  1、使用Spring MVC框架,在原有功能上封装了多个数据视图。比如有返回Json数据的视图、返回文本数据的视图、返回分页数据的视图、返回ftl数据的视图等等。
  2、实现自定义关键参数(参见我的博客http://wsppkdc.iteye.com/)。
  3、对int、boolean、long型对象为空值时进行了转换。
  4、实现智能登录验证扫描。
  5、内置自定义拦截器,可实现自定义功能。
  6、实现分布式session,开放自如。
  7、实现自定义登录验证组件,开放验证接口支持自定义实现登录验证及登录界面。
  8、实现防并发组件,可以在指定时间限制接口访问次数。
  9、实现验证码组件,可支持多组验证码分组验证。
  10、实现方法耗时监控、数据源(MySQL、Redis、Memcached等)请求统计。
  11、实现CSRF、XSS安全漏洞防范。
  以上web功能,开箱即用。不想用的时候,关闭即可。
持久化功能
  1、封装Spring JDBC实现,Hibernate号称的方便牵移,我想已经毫无用武之地了。因为Leopard不仅仅在实现上做了工作,还在设计上给了建议。建议所有数据库操作均使用单表操作(如果你认为做不到,可以直接找作者帮忙,而且还是免费的,这使我对作者肃然起敬!!!)。
  2、封装了Redis缓存实现,Hibernate的缓存,又被打趴了。
  3、对JDBC、Redis配置连接池,仅仅一行标签搞定!
解耦功能
  1、依然采用Spring的解耦功能。
其他组件
  1、实现了Jetty热部署。这个是相当牛擦的,启动web应用。只要运行一个JettyTest类即可。而且支持热部署,改完代码不需要重启。
  2、智能配置mvc resources,为了提高静态文件的访问速度。Leopard会自动将静态文件转换为Spring 的Resource,请求时不需要再进入Controller。
  3、自定义标签,简化XML编写。
  4、内置Tson数据结构简化Model构造,使单元测试编写变得相当简单。
  5、开放可扩展接口。
  6、制定开发规范,简化项目交结。
  7、智能化日志配置。
  8、….
  太多太多的新玩艺了,还是自己上http://leopard.io/上去看吧。作者已经将源码、示例代码全部开源出来了。我认为此框架值得学习,也许它将带来另一个春天!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-348652-1-1.html 上篇帖子: 论SSH框架 —— 一个狮子座程序员的大言不惭! 下篇帖子: Spring Boot——2分钟构建spring web mvc REST风格HelloWorld
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表