關于Spring總結(必看篇)
Spring引入
傳統(tǒng)的基于mvc的項目框架結構:Entity / dao / service / action
簡單用戶訪問流程:/user.action ----> Tomcat (服務器創(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. 對象的依賴關系
action 依賴 service
service依賴 dao
總結:Spring就是解決上面的問題的.簡單來說,就是處理對象的創(chuàng)建的、以及對象的依賴關系,降低組件之間的耦合度,實現(xiàn)軟件各層之間的解耦。
Spring介紹
•Spring是什么?
Spring是一個非?;钴S的開源框架, 它是一個基于IOC和AOP來構架多層JavaEE系統(tǒng)的框架,它的主要目地是簡化企業(yè)開發(fā),Spring以一種非侵入式的方式來管理你的代碼, Spring提倡”最少侵入”,這也就意味著你可以適當?shù)臅r候安裝或卸載Spring。
•具體描述Spring
1.輕量級:Spring 是非侵入性的>基于 Spring 開發(fā)的應用中的對象可以不依賴于 Spring 的 API,基礎版本的Spring框架大約只有2MB.
組件/框架設計 侵入式設計 引入了框架,對現(xiàn)有的類的結構有影響;即需要實現(xiàn)或繼承某些特定類。 例如: Struts框架 非侵入式設計 引入了框架,對現(xiàn)有的類結構沒有影響。 例如:Hibernate框架 / Spring框架
2.依賴注入(DI --- dependency injection、IOC)
Spring使用控制反轉技術實現(xiàn)了松耦合。依賴被注入到對象,而不是創(chuàng)建或尋找依賴對象。 a、IOC Inversion on Control , 控制反轉 其思想是反轉資源獲取的方向. 傳統(tǒng)的資源查找方式要求組件向容器發(fā)起請求查找資源. 作為回應, 容器適時的返回資源. 而應用了 IOC 之后, 則是容器主動地將資源推送給它所管理的組件, 組件所要做的僅是選擇一種合適的方式來接受資源. 這種行為也被稱為查找的被動形式。可以簡單的理解為對象的創(chuàng)建交給外部容器完成,這個就叫做控制反轉. b、依賴注入, dependency injection IOC 的另一種表述方式:即組件以一些預先定義好的方式(例如: setter 方法)接受來自如容器的資源注入. 相對于 IOC 而言,這種表述更直接。 兩者區(qū)別: 控制反轉: 解決對象創(chuàng)建的問題 【對象創(chuàng)建交給別人】 依賴注入: 在創(chuàng)建完對象后,對象的關系的處理就是依賴注入 【通過set方法依賴注入】
3.面向切面編程(AOP --- aspect oriented programming)
a、采用了面向切面編程來實現(xiàn)很多基礎但是與業(yè)務邏輯無關的功能的解耦,比如:事務管理、日志、權限驗證等。 b、AOP 的主要編程對象是切面(aspect), 而切面模塊化橫切關注點. c、在應用 AOP 編程時, 仍然需要定義公共功能, 但可以明確的定義這個功能在哪里, 以什么方式應用, 并且不必修改受影響的類. 這樣一來橫切關注點就被模塊化到特殊的對象(切面)里. 關注點: 重復代碼就叫做關注點; 切面: 關注點形成的類,就叫切面(類)! 面向切面編程,就是指對很多功能都有的重復的代碼抽取,再在運行的時候往業(yè)務方法上動態(tài)植入“切面類代碼”。 切入點: 執(zhí)行目標對象方法,動態(tài)植入切面代碼。 可以通過切入點表達式,指定攔截哪些類的哪些方法; 給指定的類在運行的時候植入切面類代碼。
4.容器:Spring 是一個容器, 因為它包含并且管理應用對象的生命周期
5.框架:Spring 實現(xiàn)了使用簡單的組件配置組合成一個復雜的應用. 在 Spring 中可以使用 XML 和 Java 注解組合這些對象
6.一站式
Spring提供了一站式解決方案: 1) Spring Core spring的核心功能: IOC容器, 解決對象創(chuàng)建及依賴關系 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其他模塊的支持
以上這篇關于Spring總結(必看篇)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
springboot + rabbitmq 如何實現(xiàn)消息確認機制(踩坑經(jīng)驗)
這篇文章主要介紹了springboot + rabbitmq 如何實現(xiàn)消息確認機制,本文給大家分享小編實際開發(fā)中的一點踩坑經(jīng)驗,內容簡單易懂,需要的朋友可以參考下2020-07-07使用@PathVariable注解如何實現(xiàn)動態(tài)傳值
這篇文章主要介紹了使用@PathVariable注解如何實現(xiàn)動態(tài)傳值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10spring通過構造函數(shù)注入實現(xiàn)方法分析
這篇文章主要介紹了spring通過構造函數(shù)注入實現(xiàn)方法,結合實例形式分析了spring通過構造函數(shù)注入的原理、實現(xiàn)步驟及相關操作注意事項,需要的朋友可以參考下2019-10-10