[struts2、hibernate、spring] 工作原理简单说明

简单说,三者不过把一些常用的功能方法进行封装,使得这些方法规范化,避免像在jsp开发中重复而零散地编写类似代码。

下面说明它们各自的功能角色:struts2侧重于控制器功能,当客户端发送一个地址请求,Struts(通过配置文件)根据请求代码做出反映,并进行页面调用或转发。比如:/login 请求很可能是一个登录请求,那么Struts2应该回复一个login.jsp页面给客户端进行登录,然而地址栏不会看到/login.jsp样式,具体地址被隐藏了,只看到请求地址样式。struts2的标签类似于jstl标签,它们在本质上是一致的,都是为视图层方便编码以及为更好地与控制器融合。不是一定要使用Struts2标签才能使用它的控制器功能。可以选择其他标签,如jsp或jstl标签等。标签只是皮毛。其实spring它也有一套自己的标签,哪能用那么多啊。熟悉使用一种标签即可。

hibernate框架主要是负责连接数据库,把每个数据表转化为一个类,表中的每行数据相当于类的一个对象,hibernate通过对象的方式进行读取操作。

说到spring,不得不说控制反转,有关控制反转,请搜索“java设计模式”。然而,控制反转不能说是spring的功能,而只是他的设计思想,也就是说spring是由“控制反转”和”切面编程”这些设计模式开发出来的。spring包有许多类和方法,有像hibernate那样操作底层数据库功能的方法,有可以操作复杂的业务操作,这要看调用它什么样的接口和方法。由于它特殊的设计模式,使得它可以灵活地与其它框架整合,主要是通过配置文件的方式来完成。spring和hibernate整合在实际上替代了hibernate,因为它对hibernate的方法进行了包装。

spring和strut2整合不过是为struts2的action类提供容器管理,也就是说,当要实例化一个action类的时候,根据spring配置,spring容器会负责生成该action的对象。三者整合的话,由spring来统领全局。下面的链接是一个案例,除了s2sh三大框架之外,还整合了compass搜索框架。

原文地址:https://www.cnblogs.com/kentyouyou/p/2966911.html