论SSH框架 —— 一个狮子座程序员的大言不惭!

记得很多很多年前,在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、->实现自定义关键参数(参见我的博客wsppkdc.iteye.com)。

3、对int、boolean、long型对象为空值时进行了转换。

4、实现智能登录扫描。

5、内置自定义拦截器,可实现自定义功能。

6、实现分布式session,开放自如。

7、实现自定义登录验证组件,开放验证接口支持自定义实现登录验证及登录界面。

8、实现防并发组件,可以在指定时间限制接口访问。

9、实现验证码组件,可支持多组验证码分组验证。

10、实现性能监控。

11、实现CSRF、XSS防范。

以上web功能,开箱即用。不想用的时候,关闭即可。

 

持久化功能:

1、封装spring jdbc实现,hibernate号称的方便牵移,我想已经毫无用武之地了。因为Leopard不仅仅在实现上做了工作,还在设计上给了建议。建议所有数据库操作均使用单表操作(如果你认为做不到,可以直接作者帮忙,而且还是免费的,这使我对作者又束然起敬!!!)。

2、封装了redis缓存实现,hibernate的缓存,又被打趴了。

3、对jdbc、redis配置连接池,仅仅一行标签搞定!

 

解耦功能:

1、依然采用spring的解耦功能。

 

其他组件:

1、实现了Jetty热部署。这个是相当牛擦的,启动web应用。只要运行一个jetty类即可。而且支持热部署,改完代码不需要重启。

2、智能配置mvc resource,为了提高静态文件的访问速度。Leopard会自动将静态文件转换为spring 的resource,请求时不需要再进入controller。

3、自定义标签,简化xml编写。

4、内置Tson数据结构,使单元测试编写相当简单。

5、开放可扩展接口。

6、制定开发规范,简化项目交结。

7、智能化日志配置。

8、....

太多太多的新玩艺了,还是自己上http://leopard.io上去看吧。作者甚至把源码、示例代码全部开源出来了。我真佩服作者的勇气,当之无愧的中国著名程序员!

猜你喜欢

转载自wsppkdc.iteye.com/blog/2185154
今日推荐