天天看點

Spring簡介

/*
*作者:呆萌老師
*☑csdn認證講師
*☑51cto進階講師
*☑騰訊課堂認證講師
*☑網易雲課堂認證講師
*☑華為開發者學堂認證講師
*☑愛奇藝千人名師計劃成員
*在這裡給大家分享技術、知識和生活
*各種幹貨,記得關注哦!
*/      
Spring簡介

一.spring架構

1.spring介紹

 spring架構:spring是一個非常活躍的開源架構。基于IOC和aop來構架多層javaee系統,以幫助分離項目元件之間的依賴關系(解耦)

底層: 工廠模式+xml

2.Spring功能

Spring ioc能夠幫我們根據配置檔案建立及組裝對象之間的依賴關系

Spring aop能夠幫助我們無耦合的實作日志記錄,性能統計,安全控制

spring能夠非常簡單的幫我們管理資料庫事務

spring提供了與第三方資料通路架構無縫連接配接,比如Hibernate,mybatis,而且自己也提供了一套jdbc模闆來用來資料的通路

spring還提供了與第三方web架構的無縫連接配接,比如structs,并且自己也提供了一套springMVC架構,來友善web層搭建

spring能友善的與javaee技術整合,比如Java mail,任務排程,還可以與其它技術整合,比如緩存.

3.Spring組成圖

Spring簡介
Spring簡介

​編輯

core - 核心子產品

  • spring-core:依賴注入IoC與DI的最基本實作
  • spring-beans:Bean工廠與bean的裝配
  • spring-context:spring的context上下文即IoC容器
  • spring-context-support:Spring context的擴充支援,用于MVC方面
  • spring-expression:spring表達式語言

二. IOC和DI

依賴注入或控制反轉的定義中,調用者不負責被調用者的執行個體建立工作,該工作由Spring架構中的容器來負責,它通過開發者的配置來判斷執行個體類型,建立後再注入調用者。由于Spring容器負責被調用者執行個體,執行個體建立後又負責将該執行個體注入調用者,是以稱為依賴注入。而被調用者的執行個體建立工作不再由調用者來建立而是由Spring來建立,控制權由應用代碼轉移到了外部容器,控制權發生了反轉,是以稱為控制反轉

1. IOC-控制反轉

IOC是 Inverse of Control 的簡寫,意思是控制反轉。是降低對象之間的耦合關系的設計思想。

通過IOC,開發人員不需要關心對象的建立過程,交給Spring容器完成。具體的過程是,程式讀取Spring 配置檔案,擷取需要建立的 bean 對象,

通過反射機制建立對象的執行個體。

缺點:對象是通過反射機制執行個體化出來的,是以對系統的性能有一定的影響。

将對象的建立權利翻轉給Spring容器.

2. DI-依賴注入

Dependency Injection,說的是建立對象執行個體時,同時為這個對象注入它所依賴的屬性。相當于把每個bean與bean之間的關系交給容器管理。而這個容器就是spring。

例如我們通常在 Service 層注入它所依賴的 Dao 層的執行個體;在 Controller層注入 Service層的執行個體。

3. IOC和DI

IOC的别名,2004年,Martin Fowler探讨了同一個問題,既然IoC是控制反轉,那麼到底是“哪些方面的控制被反轉了呢?”,經過詳細地分析和論證後,他得出了答案:“獲得依賴對象的過程被反轉了”。控制被反轉之後,獲得依賴對象的過程由自身管理對象變為由IoC容器主動注入。于是,他給“控制反轉”取了一個更合适的名字叫做“依賴注入(Dependency Injection,DI)”。他的這個答案,實際上給出了實作IoC的方法:注入。