说struts2是控制层是错误的,因为struts2本身就是一个标准的Web层的MVC框架,主要控制的是"用户的请求——程序的处理——程序的返回"这个流转过程。
hibernate是一个持久层的框架,他在JDBC上进行的轻量级的封装,是用户可以直接用面向对象的方式来操作关系型数据库。例如,如果你想保存一个学生信息,以前可能需要写一个insert语句,用了hibernate就只用调用它的save方法就行了。
spring是一个多元化的框架,它有类似struts的MVC。但是他最主要的功能是依赖注入和面向切面编程。所谓依赖注入就是说以前你需要一个对象的话需要new一个,这样势必造成代码写死到程序中了,这样不利于改动。依赖注入可以把你需要的对象自动生成了给你,这样用起来就很灵活了。AOO就是在程序需要进行统一处理的地方进行处理,但是又不用写死在程序中。
hibernate 是一个持久层框架,又是一个ORM框架,通俗的来讲就是 一个对象关系映射框架。使应用程序的持久化类到数据库中的表之间的关系的映射;hibernate其实就是是对jdbc的封装,减轻了程序员使用jdbc操作数据库的繁琐工作。让程序员操作数据库关心的不再是数据库中的表而是我们的持久化对象javabean。
spring :spring实现了工厂模式的工厂类--beanFactory这是一个轻量级框架,其中在spring中包含有三个重要的技术IOC 、DI、 AOP。
IOC: 控制反转 这个IOC是一种编程思想,也是一种架构的艺术,利用这个技术可以很好的实现模块与模块之间的解耦,耦合性降低 。如使用了Spring的IOC技术,对自己想使用的对象进行实例化的时候 ,不需要你自己进行new 操作了 ,而是交给 Spring容器帮你实例化对象。
struts2:它是基于webwork的xwork的 ,是xwork2的升级版, Struts2吸取了struts1和xwork2的 两者的优点 ,Strus2是以webwork为核心。所以struts2更加优秀的,更加整洁的MVC 框架 ,采用拦截器的机制处理用户的请求 这样的设计能够与原生的servletAPI完全脱离,在struts2中有一个核心类它就是StrutsPreparedAndExecuteFilter struts2准备执行过滤器 我们要想使用Struts2 对用户的请求处理 我们必须在web.xml中进行配置这个核心过滤器。 基本上是过滤所有请求的
struts2是控制层,主要是客户端的请求到来时,收集提交来的数据,并调用业务,实现跳转,我们叫做控制跳转层。
hibernate 是数据库的持久层,帮助我们把收集来的数据增删改查到数据库中,提高很方便的数据库操作。
Spring 是一个容器,就像一个大箱子把hibernate,struts2转载的在它的肚中,进行对象的控制,方便项目的结构控制,业务扩展。以及hibernate中的事物托管到可以做到。
三者可以很好的结合层一个javaee标准的mvc结构。
Struts2业务逻辑层,hibernate数据库连接层,spring为struts2注入