谈谈JAVA里的SSH框架

大名鼎鼎的SSH框架,就是没吃过猪肉,也看过猪跑。是市面上最主流的JAVA开发Web应用的框架。

Hibernate

先来谈谈为什么要对对象进行持久化?对象持久化的目的,是为了将业务数据对象存储在可持久保存的存储介质上,并同时提供查询修改的手段。Hibernate就是这样一个框架,它提供对数据库的可持久访问,并允许将抽象的业务模型对象存储起来,保存在数据库里,支持增、删、改、查等操作。类似于.NET里的EntityFramework技术,包括从Hibernate抄袭过来移植到.NET平台的NHibernate。

Struts

乍一看Struts不就是基于J2EE平台的MVC框架嘛。MVC框架接触了很多了,其主旨思想就是分离业务模型和视图,让二者的逻辑变得清晰,各自分工明确,再由控制器来协调模型和视图的交互。这类框架的思想不变,实现各异。就拿Strucs来说,JSP负责视图的展示,Servlet负责服务器端的核心业务,彼此分工明确。

Spring

Spring的核心思想是AOP和IoC。

先来说说什么是AOP?AOP的全称叫Aspect Oriented Program,即面向切面编程。它的定义,这种在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。比如日志这个功能,每个方法上都能调用,使用AOP就可以在每个方法执行的时候,来上这么一刀,插入我想执行的操作。如果说面向对象编程是从静态角度考虑程序结构的话,那么面向切面编程就是从动态角度考虑程序运行过程。AOP的思维是引导你从另一个切面来看待和插入这些工作。日志,不管在哪里,它其实都是属于日志系统这个角度。权限控制也一样。AOP允许你以一种统一的方式在运行时期在想要的地方插入这些逻辑。

再来说说什么是IoC。IoC全称叫Inverse of Control,即控制反转。它还有个叫法叫DI,全称Dependency Injection,即依赖注入。它们所表达的是同一个意思,都是在我有需要的时候,让第三方信任者给我需要的东西,而不是我主动去找。区别只是主语不同而已,IoC的主语是我,DI的主语是第三方信任者。

说了这么多,还是要在遇到问题时去解决问题,用框架来解决更方便,才是框架设计的初衷。纯粹为了学框架而学,本身没搞清楚框架的作用,就变得本末倒置了。

avatar

chilihotpot

You Are The JavaScript In My HTML