Spring的官網:https://spring.io/web
Struts與Hibernate能夠作什麼事?spring
Struts,數據庫
Mvc中控制層解決方案 編程
能夠進行請求數據自動封裝、類型轉換、文件上傳、效驗…mvc
Hibernate,框架
持久層的解決方案;工具
能夠作到,spa
把對象保存到數據庫,設計
從數據庫中取出的是對象。日誌
傳統的開發模式
基於mvc模式進行項目開發;
基於mvc的項目框架結構:
Entity / dao / service / action
爲何引入Spring:
思考:
1. 對象建立建立可否寫死?
2. 對象建立細節
對象數量
action 多個 【維護成員變量】
service 一個 【不須要維護公共變量】
dao 一個 【不須要維護公共變量】
建立時間
action 訪問時候建立
service 啓動時候建立
dao 啓動時候建立
3. 對象的依賴關係
action 依賴 service
service依賴 dao
=======================================================
總結:
spring就是解決上面的問題的!
簡單來講,就是處理對象的建立的、以及對象的依賴關係!
1:框架設計:
1.1:侵入式設計:引入了框架,對現有的類的結構有影響,即須要實現或者繼承某些特定類
例如:Struts2框架
1.2:非侵入式設計:引入了框架,對現有的類結構沒有影響
例如:Hibernate框架,Spring框架
2:Spring框架
Spring概述:能夠解決對象建立以及對象之間依賴關係的一種框架。且能夠很好的和其餘框架一塊兒使用,
如Spring和Hibernate,Spring和Struts2,其實通俗點講Spring就是起到一種整合的做用,
如是一座橋樑,鏈接了Hibernate和Struts2;
2.1:控制反轉(Inversion of Confrol):
對象的建立交給外部容器完成,這個就叫作控制反轉
2.2:依賴注入(dependency injection):
處理對象的依賴關係
2.3:控制反轉和依賴注入的區別:
控制反轉:解決對象建立的問題[對象建立交給別人即ioc容器];
依賴注入:在建立完對象後,對象的關係的處理就是依賴注入[經過set方法依賴注入];
2.4:AOP面向切面編程
面向切面編程:切面,簡單的說來能夠理解爲一個類,由不少重複代碼造成的類。
例如:事務,日誌,權限。
3:Spring提供了一站式解決方案:
3.1:SpringCore:
Spring的核心功能,IoC容器,解決對象建立以及依賴關係
3.2:SpringWeb:
Spring對web模塊的支持:
(1)能夠與struts2整合,讓struts2的action的建立交給Spring
(2)Spring mvc模式
3.3:SpringDao:
Spring對jdbc操做的支持[JdbcTemplate模板工具類]
3.4:SpringORM:
Spring對orm的支持:
(1):既能夠與Hibernate整合
(2):也能夠使用Spring對Hibernate操做的封裝
3.5:SpringAOP:
面向切面編程
3.6:SpringEE:
Spring對JavaEE其餘模塊的支持
框架啊,東西多而雜,耐着性子慢慢消化~~~