文章目錄
- 什么是spring?
- Spring的相關概念
- IOC(控制反轉)
- DI(依賴注入)
- AOP(面向切面編程)
- Spring的優缺點
- 優點
- 缺點
- Spring由哪些模塊組成
- Spring 框架中都用到了哪些設計模式
什么是spring?
- Spring是一個輕量級Java開發框架,最早有Rod Johnson創建,目的是為了解決企業級應用開發的業務邏輯層和其他各層的耦合問題,它是一個分層的JavaSE/JavaEE full-stack(一站式)輕量級開源框架,為開發Java應用程式提供全面的基礎架構支持,Spring負責基礎架構,因此Java開發者可以專注于應用程式的開發
- Spring最根本的使命是解決企業級應用開發的復雜性,即簡化Java開發
- Spring可以做很多事情,它為企業級開發提供給了豐富的功能,但是這些功能的底層都依賴于它的兩個核心特性,也就是依賴注入(dependency injection,DI)和面向切面編程(aspect-oriented programming,AOP)
Spring的相關概念
IOC(控制反轉)
把物件創建和物件之間的呼叫程序,交給 Spring 進行管理,
創建物件實體的控制權從代碼控制剝離到IOC容器控制,實際就是你在xml檔案控制,側重于原理
DI(依賴注入)
創建物件實體時,為這個物件注入屬性值或其它物件實體,側重于實作
AOP(面向切面編程)
不修改源代碼,在主干功能里面添加新功能
Spring的優缺點
優點
- 方便解耦,簡化開發
Spring就是一個大工廠,可以將所有物件的創建和依賴關系的維護,交給Spring管理 - AOP 編程支持
- 方便程式測驗
Spring對Junit4支持,可以通過注解方便的測驗Spring程式 - 方便和其他框架進行整合
其內部提供了對各種優秀框架的直接支持如Struts、Hibernate、MyBatis等 - 宣告式事務支持
只需要通過配置就可以完成對事務的管理,而無需手動編程 - 降低 API 開發難度
對一些難呼叫的API都進行了封裝,比如JDBC
缺點
- Spring依賴反射,反射影響性能
- 使用門檻升高,入門Spring需要較長時間
Spring由哪些模塊組成
Spring 總共大約有 20 個模塊, 由 1300 多個不同的檔案構成, 以下是 Spring 5 的模塊結構圖:

spring-beans、spring-core、spring-context 和 spring-expression(Spring Expression Language, SpEL) 4 個模塊是Spring的核心模塊
- spring core:提供了框架的基本組成部分,包括控制反轉(Inversion of Control,IOC)和依賴注入(Dependency Injection,DI)功能
- spring-beans:提供了BeanFactory,是工廠模式的一個經典實作,Spring將管理物件稱為Bean
- spring-context:構建于 core 封裝包基礎上的context 封裝包,提供了一種框架式的物件訪問方法
- spring-jdbc:提供了一個JDBC的抽象層,消除了煩瑣的JDBC編碼和資料庫廠商特有的錯誤代碼決議, 用于簡化JDBC
- spring-aop:提供了面向切面的編程實作,讓你可以自定義攔截器、切點等
- spring-web:提供了針對 Web 開發的集成特性,例如檔案上傳,利用 servlet listeners 進行 IOC容器初始化和針對 Web 的 ApplicationContext
- spring-test:主要為測驗提供支持的,支持使用JUnit或TestNG對Spring組件進行單元測驗和集成測驗
Spring 框架中都用到了哪些設計模式
- 工廠模式
BeanFactory就是簡單工廠模式的體現,用來創建物件的實體 - 單例模式
Bean默認為單例模式 - 代理模式
Spring的AOP功能用到了JDK的動態代理和CGLIB位元組碼生成技術 - 模板方法
用來解決代碼重復的問題,比如RestTemplate, JmsTemplate, JpaTemplate - 觀察者模式
定義物件鍵一種一對多的依賴關系,當一個物件的狀態發生改變時,所有依賴于它的物件都會得到通知被制動更新,如Spring中listener的實作–ApplicationListener
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/281760.html
標籤:其他
