Spring是一個(gè)開(kāi)源框架,為了解決企業(yè)應(yīng)用開(kāi)發(fā)的復(fù)雜性而創(chuàng)建的,但現(xiàn)在已經(jīng)不止應(yīng)用于企業(yè)應(yīng)用。
是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架:
從大小與開(kāi)銷(xiāo)兩方面而言Spring都是輕量的
通過(guò)控制反轉(zhuǎn)(IOC)的技術(shù)達(dá)到松耦合的目的
提供了面向切面編程的豐富支持,允許通過(guò)分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級(jí)服務(wù)進(jìn)行內(nèi)聚性的開(kāi)發(fā)
包含并管理應(yīng)用對(duì)象的配置和生命周期,這個(gè)意義上是一種容器
將簡(jiǎn)單的組件配置、組合成為復(fù)雜的應(yīng)用,這個(gè)意義上是框架
Spring作用:
容器
提供了對(duì)多種技術(shù)的支持
- JMS
- MQ支持
- UnitTest
- ......
AOP(事務(wù)管理、日志等)
提供了眾多方便應(yīng)用的輔助類(lèi)(JDBC Template等)
對(duì)主流應(yīng)用框架(Hibernate等)提供了良好的支持
適用范圍:
構(gòu)建企業(yè)應(yīng)用(SpringMVC + Spring + Hibernate/Mybatis)
單獨(dú)只用Bean容器(Bean管理)
單獨(dú)使用AOP進(jìn)行切面管理
其他的Spring功能,如:對(duì)消息的支持等
在互聯(lián)網(wǎng)中的應(yīng)用......
框架(別人搭舞臺(tái),你來(lái)表演):
特點(diǎn):半成品
封裝了特定的處理流程和控制邏輯
成熟的、不斷升級(jí)改進(jìn)的軟件
與類(lèi)庫(kù)的區(qū)別:
框架一般是封裝了邏輯、高內(nèi)聚的,類(lèi)庫(kù)則是松散的工具組合
框架專(zhuān)注于某一領(lǐng)域,類(lèi)庫(kù)則是更通用的
IOC:控制反轉(zhuǎn),控制權(quán)的轉(zhuǎn)移,應(yīng)用程序本身不負(fù)責(zé)依賴(lài)對(duì)象的創(chuàng)建和維護(hù),而是由外部容器負(fù)責(zé)
是獲得依賴(lài)對(duì)象的過(guò)程被反轉(zhuǎn)了,控制被反轉(zhuǎn)之后,獲得依賴(lài)對(duì)象的過(guò)程由自身管理變?yōu)橛蠭OC容器主動(dòng)注入
IOC本質(zhì)就是要拋棄new的方法取得對(duì)象,通過(guò)配置來(lái)取得對(duì)象。
DI(依賴(lài)注入)是其一種實(shí)現(xiàn)方式
目的:創(chuàng)建對(duì)象并且組裝對(duì)象之間的關(guān)系
Struts2
Struts是流行和成熟的基于MVC設(shè)計(jì)模式的web應(yīng)用程序框架。
Struts翻譯:支柱,支桿,來(lái)源于建筑和舊式飛機(jī)使用的而金屬支架。
Apache Struts2的環(huán)境需求:servlet API 2.4 JSP API 2.0 Java 1.5+
搭建Struts2環(huán)境步驟:
1. 下載相關(guān)jar包
2. 創(chuàng)建web項(xiàng)目
3. 創(chuàng)建并完善相關(guān)配置文件
4. 創(chuàng)建Action并測(cè)試啟動(dòng)
---------------------------------------------------
Struts2工作流程:
1、客戶(hù)端(HttpServletRequest)發(fā)送請(qǐng)求
2、請(qǐng)求經(jīng)過(guò)過(guò)濾器(ActionContextCleanUp-->StrutsPrepareAndExecuteFilter(核心過(guò)濾器 )
3、請(qǐng)求到達(dá)ActionMapper,通過(guò)它來(lái)決定調(diào)用哪個(gè)Action
4、當(dāng)決定調(diào)用某個(gè)Action后,請(qǐng)求又會(huì)通過(guò)核心過(guò)濾器,核心過(guò)濾器把請(qǐng)求的處理交給ActionProxy
5、ActionProxy通過(guò)ConfigurationManager詢(xún)問(wèn)配置文件(Struts.xml),找到要調(diào)用的Action類(lèi)。
---------------------------------
Struts2核心文件:
一. web.xml
任何MVC框架都需要與web應(yīng)用整合,這就不得不借助于web.xml文件,
只有配置在web.xml文件中servlet才會(huì)被應(yīng)用加載。
通常,所有的MVC框架都需要web應(yīng)用加載一個(gè)核心控制器,對(duì)于Struts2框架而言,
需要加載StrutsPrepareAndExecuteFilter,
只要web應(yīng)用負(fù)責(zé)加載StrutsPrepareAndExecuteFilter,
StrutsPrepareAndExecuteFilter將會(huì)加載Struts2框架。
二. struts.xml
Struts2的核心配置文件,再開(kāi)發(fā)過(guò)程中利用率最高,該文件主要負(fù)責(zé)管理應(yīng)用中的Action映射,
以及該Action包含的Result定義等。
struts.xml中包含的內(nèi)容:
1. 全局屬性
2. 用戶(hù)請(qǐng)求和響應(yīng)Action之間的對(duì)應(yīng)關(guān)系
3. Action可能用到的參數(shù)和返回結(jié)果
4. 各種攔截器的配置
三. struts.properties
struts2框架的全局屬性文件,自動(dòng)加載。
該文件包含很多key-value對(duì)。
該文件完全可以配置在struts.xml文件中,使用constant元素。
傳統(tǒng)是servlet+jdbc實(shí)現(xiàn)MVC模式。
動(dòng)態(tài)方法調(diào)用就是為了解決一個(gè)Action對(duì)應(yīng)多個(gè)請(qǐng)求的處理,以免Action太多。推薦使用通配符的方式。
struts2提供三種方式去訪(fǎng)問(wèn)Servlet API:
1. ActionContext 2. 實(shí)現(xiàn)***Aware 3. ServletActionContext
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。