javascript
SSH框架(Struts+Spring+Hibernate)
在SSH 的組合框架模式中,三者各自的作用?
Struts 是一個(gè)很好的MVC框架,主要技術(shù)是Servlet和Jsp。Struts的MVC設(shè)計(jì)模式可以使我們的邏輯變得很清晰,讓我們寫的程序?qū)哟畏置鳌;赟truts開發(fā)可以簡(jiǎn)化開發(fā)難度,提高開發(fā)效率。
Spring 提供了管理業(yè)務(wù)對(duì)象的一致方法,并鼓勵(lì)注入對(duì)接口編程而不是對(duì)類編程的良好習(xí)慣,使我們的產(chǎn)品在最大程度上解耦。
Hibernate 是用來(lái)持久化數(shù)據(jù)的,提供了完全面向?qū)ο蟮臄?shù)據(jù)庫(kù)操作。Hibernate對(duì)JDBC進(jìn)行了非常輕量級(jí)的封裝,它使得與關(guān)系型數(shù)據(jù)庫(kù)打交道變得非常輕松。
在Struts+Spring+Hibernate系統(tǒng)中,對(duì)象之間的調(diào)用流程如下:
??
Struts——>Spring——>Hibernate
JSP——>Action——>Service——>DAO——>Hibernate
SSH工作流程?
???????a.啟動(dòng)服務(wù)器,加載工程以及web.xml.
???????????(實(shí)例化Lisener,Filter等組件,將Spring容器和Struts2控制創(chuàng)建)
???????b.客戶端發(fā)送請(qǐng)求,所有請(qǐng)求進(jìn)入Struts2控制器。控制器根據(jù)請(qǐng)求類型不同,分別處理。
???????????(action請(qǐng)求,*.action會(huì)進(jìn)入struts.xml尋找<action>配置.
????????????其他請(qǐng)求,*.jsp會(huì)直接調(diào)用請(qǐng)求資源,生成響應(yīng)信息)
???????c.Struts2控制器根據(jù)<action>配置調(diào)用一個(gè)Action對(duì)象處理。
?????????整合方法一:將Action交給Spring容器
??????????(Action對(duì)象由struts2-spring-plugin.jar插件提供的 ?????????????????????StrutsSpringObjectFactory負(fù)責(zé)去Spring容器獲取)
?????????整合方法二:將Action置于Spring容器之外
??????????(Action對(duì)象由struts2-spring-plugin.jar插件提供的 ?????????????????????StrutsSpringObjectFactory負(fù)責(zé)創(chuàng)建,然后到Spring容器中尋找與Action
屬性匹配的Bean對(duì)象,給Action對(duì)象注入。(默認(rèn)采用名稱匹配規(guī)則)
???????d.Struts2控制器執(zhí)行defaultStack攔截器、Action對(duì)象、Result等組件處理.
???????e.執(zhí)行Action的execute業(yè)務(wù)方法時(shí),如果使用Service或DAO采用Spring的IoC機(jī)制調(diào)用。
???????f.執(zhí)行Result生成響應(yīng)信息,執(zhí)行后續(xù)攔截器處理
???????g.將響應(yīng)信息輸出。
總結(jié)
以上是生活随笔為你收集整理的SSH框架(Struts+Spring+Hibernate)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php ioc容器,PHP 在Swool
- 下一篇: js简易计算机代码if语句,简单学习下J