struts是显示层的一种规范,侧重于处理“给用户显示的前台页面”和后台业务处理类之间的对应关系,并且负责前后台之间的数据传递。它由三种java类组件jsp、Form、Action分别实现前台页面展示、后台业务处理类、数据传递类。(所谓组件,就是对一种专门实现某种功能的java类的称呼)
spring是业务层的一种规范,侧重于定义事务处理,提供了对各种java类的整体处理(主要包括注入处理IoC和切面编程AOP),甚至提供了对多种框架集成在一块的规范,它是一种更高层次的框架,它主要以一个外部 XML 配置文件方便地将各框架对象连接在一起,进而实现安全性服务、事务服务等。
这里大家可能有一个疑问,spring是如何以一个外部 XML 配置文件实现的各种功能呢?这其实没有任何神秘而言,我们大家都知道,每个框架都有许多类包,这些类包就是专门实现这些事情的。这些类包是如何介入我们写的类代码或其它框架的呢?当然必须通过一定途径才能调用其它类代码,有时spring把这个细节隐藏了起来,使我们感到不可思议,细究一下,我们会发现不外通过两种方式才能调用其它类代码:一是把我们的类写在它的配置文件里,二是我们的类继承它的接口。
hibernate是一个纯 Java 的对象关系映射和持久性框架,它允许您用 XML 配置文件把普通 Java 对象映射到关系数据库表,从而可以使用户以hibernate提供的面向对象的接口轻松操作数据库。hibernate的类包在后台还是以JDBC的方式操作数据库。