【後端面經-Spring】Spring簡介
1. Spring簡介
Spring是為了簡化java項目開發設計的一款設計層面開源框架,其設計目的就是為了“簡化開發”。
它使用分層架構,解決業務邏輯層和各層之間的鬆耦合。
核心特性:
- IOC:控制反轉;
-
AOP:面向切面編程;
2. Spring模塊
Spring框架可分為如下所示的模塊:
- 核心容器(Core Container):核心容器提供Spring框架的基本功能;
- 數據訪問/集成(Data Access/Integration)
- 網絡(Web);
- AOP模塊和Aspects(切面);
- 設備(Instrumentation);
- 測試(Test);
每個模塊的詳細介紹可參考此博客:Spring詳解(一)----Spring框架介紹
3. Spring核心特性
- IOC
IOC(Inversion of Control)即控制反轉,是一種設計思想,就是將原本在程序中手動創建對象的控制權,交由Spring框架來管理。
Spring框架在核心容器中的BeanFactory模塊中使用了工廠模式創建Java對象,這些對象就是常説的“Bean”對象,對於Bean對象的生命週期、創建方式,在此不做贅述。
DI(Dependency Injection)即依賴注入,是IOC的一種實現方式,即通過反射機制,將Bean對象的屬性注入到Bean對象中。有兩種注入方式:設值注入(通過setter方法進行設置,較為簡單)、構造注入(可構造依賴注入的優先級,但是較為複雜)。 -
AOP
AOP(Aspect Oriented Programming)即面向切面編程,是一種編程思想,是對OOP(Object Oriented Programming)的補充,OOP是對業務邏輯的封裝,而AOP是對業務邏輯的分離,即將業務邏輯和非業務邏輯分離,使得業務邏輯更加清晰。
AOP將項目中的通用功能進行封裝,形成獨立切面從而複用。4. Spring的後續拓展
Spring是由Rod Johnson於2003年創建的,目前已經發展到了Spring5.0版本。後來,在Spring框架的基礎上,又引申出了SpringBoot、SpringCloud等框架,這些框架都是基於Spring框架的,是Spring框架的拓展。目前SpringBoot框架也是一個常用框架。
學習路徑應如下所示:Java基礎-->設計模式-->Spring框架-->SpringMVC-->SpringBoot、SpringCloud
面試模擬
Q:介紹一下Spring,什麼是IOC、AOP、JavaBean?
A:Spring是為了簡化java開發而設計的設計層面開源框架,核心思想是控制反轉和麪向切面編程,其中,控制反轉指的是原本由程序手動創建對象的權力交給spring框架,從而實現資源的集中管理,創建的對象使用依賴注入的思想傳遞給相關類,這些被創建的對象稱為“Bean”對象;而面向切面編程指的是將項目中的通用功能進行封裝,形成獨立切面從而複用。
參考資料
- Spring詳解(一)----Spring框架介紹
- Spring基礎知識彙總 Java開發必看
- Spring開發-廖雪峯官方網站