首页 > 其他 > 详细

ssh集成过程

时间:2014-03-12 01:50:16      阅读:445      评论:0      收藏:0      [点我收藏+]

花了几天时间,总算弄懂了ssh各个模块间是如何集成在一起,以及如何互相调用的。做个笔记,错误处欢迎指正。:

先从原理说一下,struts的作用是对servlet做了一层更高抽象的封装。采用活动、拦截器等概念。那么如何使系统识别出应用了struts呢,原因就在web.xml里。

 <servlet>

   <servlet-name>action</servlet-name>

   <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

   <init-param>

     <param-name>config</param-name>

     <param-value>/WEB-INF/struts-config.xml</param-value>

   </init-param>

   <init-param>

     <param-name>debug</param-name>

     <param-value>3</param-value>

   </init-param>

   <init-param>

     <param-name>detail</param-name>

     <param-value>3</param-value>

   </init-param>

   <load-on-startup>0</load-on-startup>

 </servlet>

 <servlet-mapping>

   <servlet-name>action</servlet-name>

   <url-pattern>*.do</url-pattern>

  </servlet-mapping>

当应用struts的时候,会在web.xml里加上上面这一段,就表示所有.do结尾的url都交给org.apache.struts.action.ActionServlet处理。这个ActionServlet是一个总入口,称为dispatcher的调度servlet。它再依据struts-config.xml里面的Action配置,把请求分别转到各个Actionservlet去处理。如果只说到这儿的话,似乎只用struts也是完全可以的。

下面该spring上场了。Spring的作用是为组件解耦。试想,如果只用struts,那么在action里势必要写一些调用后台业务模块和数据库访问的代码。将来业务逻辑变更或者数据库变更了,这些代码改动量就太大了。所以spring采用常称的“依赖注入”或“控制反转”,使得在调用后台模块的时候,直接“申请”就是了。不用硬编码为其实例化啊、初始化啊什么的。当然“申请”使用还是要先知道名字才行。但这个名字也不是写死的。在配置文件applicationContext.xml里。这里面定义了各个bean的说明。

那么最常见的是spring为哪些模块解耦呢。对,数据库访问模块。Hibernate是为数据库与组件提供了映射以及自动持久化等工作。所以用hibernate比直接对数据库进行硬sql编码有诸多好处。比如更稳定、更安全、跨数据库,开发也更迅速等。既然hibernate通常与spring一起用,就有个问题。在myeclipse里,我们必须先执行AddSpring Capabilities,再执行AddHibernate Capabilities。因为要往applicationContext.xml里写hibernate的相关信息,顺序反了就得手工加了。(strutes和spring的先后顺序是无关的)。而hibernate本身的数据表映射信息保存在xxx.hbm.xml里。

常见调用场景是在action里通过“查询”applicationContext.xml,“申请”hibernate提供的DAO组件访问数据库。

这样通过这几个xml文件的各自描述,三个常用模块就组成了ssh架构。

ssh集成过程,布布扣,bubuko.com

ssh集成过程

原文:http://blog.csdn.net/zjc/article/details/21025817

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!