您好,登錄后才能下訂單哦!
Spring的特性有哪些?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習下,希望你能有所收獲。
Spring引入
傳統(tǒng)的基于mvc的項目框架結(jié)構(gòu):Entity / dao / service / action
簡單用戶訪問流程:/user.action ----> Tomcat (服務(wù)器創(chuàng)建Action、Service、dao
引出思考:
1. 對象創(chuàng)建創(chuàng)建能否寫死?
2. 對象創(chuàng)建細節(jié)
對象數(shù)量
action 多個 【維護成員變量】
service 一個 【不需要維護公共變量】
dao 一個 【不需要維護公共變量】
創(chuàng)建時間
action 訪問時候創(chuàng)建
service 啟動時候創(chuàng)建
dao 啟動時候創(chuàng)建
3. 對象的依賴關(guān)系
action 依賴 service
service依賴 dao
總結(jié):Spring就是解決上面的問題的.簡單來說,就是處理對象的創(chuàng)建的、以及對象的依賴關(guān)系,降低組件之間的耦合度,實現(xiàn)軟件各層之間的解耦。
Spring介紹
•Spring是什么?
Spring是一個非?;钴S的開源框架, 它是一個基于IOC和AOP來構(gòu)架多層JavaEE系統(tǒng)的框架,它的主要目地是簡化企業(yè)開發(fā),Spring以一種非侵入式的方式來管理你的代碼, Spring提倡”最少侵入”,這也就意味著你可以適當?shù)臅r候安裝或卸載Spring。
•具體描述Spring
1.輕量級:Spring 是非侵入性的>基于 Spring 開發(fā)的應(yīng)用中的對象可以不依賴于 Spring 的 API,基礎(chǔ)版本的Spring框架大約只有2MB.
組件/框架設(shè)計 侵入式設(shè)計 引入了框架,對現(xiàn)有的類的結(jié)構(gòu)有影響;即需要實現(xiàn)或繼承某些特定類。 例如: Struts框架 非侵入式設(shè)計 引入了框架,對現(xiàn)有的類結(jié)構(gòu)沒有影響。 例如:Hibernate框架 / Spring框架
2.依賴注入(DI --- dependency injection、IOC)
Spring使用控制反轉(zhuǎn)技術(shù)實現(xiàn)了松耦合。依賴被注入到對象,而不是創(chuàng)建或?qū)ふ乙蕾噷ο蟆? a、IOC Inversion on Control , 控制反轉(zhuǎn) 其思想是反轉(zhuǎn)資源獲取的方向. 傳統(tǒng)的資源查找方式要求組件向容器發(fā)起請求查找資源. 作為回應(yīng), 容器適時的返回資源. 而應(yīng)用了 IOC 之后, 則是容器主動地將資源推送給它所管理的組件, 組件所要做的僅是選擇一種合適的方式來接受資源. 這種行為也被稱為查找的被動形式??梢院唵蔚睦斫鉃閷ο蟮膭?chuàng)建交給外部容器完成,這個就叫做控制反轉(zhuǎn). b、依賴注入, dependency injection IOC 的另一種表述方式:即組件以一些預(yù)先定義好的方式(例如: setter 方法)接受來自如容器的資源注入. 相對于 IOC 而言,這種表述更直接。 兩者區(qū)別: 控制反轉(zhuǎn): 解決對象創(chuàng)建的問題 【對象創(chuàng)建交給別人】 依賴注入: 在創(chuàng)建完對象后,對象的關(guān)系的處理就是依賴注入 【通過set方法依賴注入】
3.面向切面編程(AOP --- aspect oriented programming)
a、采用了面向切面編程來實現(xiàn)很多基礎(chǔ)但是與業(yè)務(wù)邏輯無關(guān)的功能的解耦,比如:事務(wù)管理、日志、權(quán)限驗證等。 b、AOP 的主要編程對象是切面(aspect), 而切面模塊化橫切關(guān)注點. c、在應(yīng)用 AOP 編程時, 仍然需要定義公共功能, 但可以明確的定義這個功能在哪里, 以什么方式應(yīng)用, 并且不必修改受影響的類. 這樣一來橫切關(guān)注點就被模塊化到特殊的對象(切面)里. 關(guān)注點: 重復(fù)代碼就叫做關(guān)注點; 切面: 關(guān)注點形成的類,就叫切面(類)! 面向切面編程,就是指對很多功能都有的重復(fù)的代碼抽取,再在運行的時候往業(yè)務(wù)方法上動態(tài)植入“切面類代碼”。 切入點: 執(zhí)行目標對象方法,動態(tài)植入切面代碼。 可以通過切入點表達式,指定攔截哪些類的哪些方法; 給指定的類在運行的時候植入切面類代碼。
4.容器:Spring 是一個容器, 因為它包含并且管理應(yīng)用對象的生命周期
5.框架:Spring 實現(xiàn)了使用簡單的組件配置組合成一個復(fù)雜的應(yīng)用. 在 Spring 中可以使用 XML 和 Java 注解組合這些對象
6.一站式
Spring提供了一站式解決方案: 1) Spring Core spring的核心功能: IOC容器, 解決對象創(chuàng)建及依賴關(guān)系 2) Spring Web Spring對web模塊的支持。 可以與struts整合,讓struts的action創(chuàng)建交給spring spring mvc模式 3) Spring DAO Spring 對jdbc操作的支持 【JdbcTemplate模板工具類】 4) Spring ORM spring對orm的支持: 既可以與hibernate整合,【session】 也可以使用spring的對hibernate操作的封裝 5)Spring AOP 切面編程 6)SpringEE spring 對javaEE其他模塊的支持
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。