记得很多很多年前,在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上去看吧。作者甚至把源码、示例代码全部开源出来了。我真佩服作者的勇气,当之无愧的中国著名程序员!
相关推荐
在"javaSSH框架——学生学籍管理系统"中,我们可以看到一个典型的SSH框架应用,主要用于实现学生学籍的管理。 一、设计目的 该设计旨在让学生通过实际操作加深对J2EE框架技术的理解,特别是在Struts2、Spring和...
其中javascript向java类中传递值解决中文乱码问题是一个难点,该项目成功地解决了该问题。此外,组合查询时如何解决浏览器缓存也让我思考很久。希望它能够帮助到需要的人。另外,项目中的jar包是从官网下载最新后...
Spring框架则是一个全面的企业级应用框架,提供了依赖注入(DI)和面向切面编程(AOP)等核心特性。在SSH框架中,Spring作为中心枢纽,管理其他组件,如Struts2和Hibernate,以及应用程序中的所有对象。Spring还提供...
SSH框架,全称为Struts+Hibernate+Spring,是Java Web开发中的一个流行组合,用于构建高效、可扩展的多层Web应用程序。这三个组件分别负责不同的职责,共同构成了强大的MVC(Model-View-Controller)架构。 Struts...
(包括数据库,在项目里)前台做的比较简单,只加了框架和flash。后台代码有详细的注释,包含选课系统的课程项目设计报告。项目实现了学生查看个人信息、学生信息修改、选课、退选、国际化、分页、模糊查询功能。
在IT行业中,SSH框架是一个非常重要的概念,尤其对于Java Web开发者来说。SSH是Spring、Struts和Hibernate三个开源框架的首字母缩写,它们分别负责应用的依赖注入、MVC模式实现以及对象关系映射。这里我们将深入探讨...
2. **创建项目**:在IDE中新建一个Maven项目,添加SSH框架的依赖到pom.xml文件。Struts2、Spring和Hibernate的最新稳定版本应该被引入。 3. **配置Struts2**:在src/main/resources目录下创建struts.xml配置文件,...
在整个SSH框架搭建的过程中,我们需要熟悉各个框架的工作原理及其配置方法,这对于开发一个功能完整的Web应用至关重要。例如,Struts框架的配置主要集中在web.xml文件和struts-config.xml文件中,Spring框架的配置则...
这个“一个简单的SSH框架程序”很显然是一个基于这些技术构建的应用实例,用于帮助开发者理解并学习如何整合这三种框架。接下来,我们将深入探讨SSH框架以及与其相关的技术。 **Struts2框架**: Struts2是MVC...
这个压缩包文件"SSHdemo"提供了一个SSH框架搭建登录功能的示例,帮助开发者了解并实践如何整合这三个框架来构建一个完整的Web应用程序。 **Struts2** 是一个基于MVC(Model-View-Controller)设计模式的Java Web...
这个"一个完整的SSH框架demo"是为初学者提供了一个实践平台,帮助理解这三大框架如何协同工作,实现Web应用的开发。 **Spring框架**:Spring是一个全方位的轻量级应用框架,它提供了IOC(Inversion of Control)...
ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ...
一个最简单的SSH框架Struts 、 spring 、 Hibernate 在各层的作用 1 ) struts 负责 web 层 . ActionFormBean 接收网页中表单提交的数据,然后通过 Action 进行处理,再 Forward 到对应的网页。 在 struts-config...
SSH框架,全称为Struts2 + Spring + Hibernate,是Java Web开发中常用的一种集成框架,它结合了Struts2的MVC设计模式、Spring的IoC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面...
ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ...
这个“ssh框架纯净版”包含了这三个框架的基础组件和相关代码,旨在提供一个简洁、无多余依赖的开发环境。 1. **Struts2**:Struts2是一个基于MVC设计模式的Web应用框架,它继承了Struts1的优点并引入了许多新特性...
6. **学习资源**:"mvn_ssh_01"可能包含的是一个基于Maven构建的SSH项目实例,其中可能包括了配置文件、源代码、测试用例等,是学习SSH整合的好材料。通过分析这个项目,可以更直观地了解SSH如何协同工作,以及如何...
5. **毕业设计**:对于学生而言,理解和运用SSH框架进行OA系统的开发,是一个很好的实践项目。通过这样的设计,学生能够深入理解Web开发的流程,掌握企业级应用开发的核心技术,并提升问题解决能力。 这篇论文可能...
SSH框架,全称为Spring、Struts和Hibernate,是Java Web开发中的一个经典组合,用于构建高效、可维护的Web应用程序。这些框架各自负责不同的职责,Spring作为基础架构框架,Struts处理视图与控制,Hibernate则专注于...