Spring 是一個開源框架,為簡化企業級應用開發而生
Spring可以實現java模塊化開發,貫穿表現層,業務層,邏輯層,實現了各個層之間的解耦合關系
Spring 是一個 IOC
和 AOP
容器框架
Spring 容器的核心:
- 控制反轉(IOC):傳統的java 開發模式中,當需要一個對象時,我們會自己使用
new
或者getInstance
等直接或者間接調用構造方法創建一個對象。
而在spring 開發模式中,spring 容器使用了工廠模式為我們創建了所需要的對象,不需要我們自己創建了,直接調用spring 提供的對象就可以了,這是控制反轉的思想 - 面向切面編程(AOP):在面向對象編程(oop)思想中,我們將事物縱向抽成一個個的對象。而在面向切面編程中,我們將一個個的對象某些類似的方面橫向抽成一個切面,對這個切面進行一些如權限控制、事物管理,記錄日志等公用操作處理的過程就是面向切面編程的思想。
AOP 底層是動態代理,如果是接口采用JDK 動態代理,如果是類采用CGLIB 方式實現動態代理。AOP 底層是動態代理,如果是接口采用JDK 動態代理,如果是類采用CGLIB 方式實現動態代理。 - 依賴注入(DI):Spring 使用 JavaBean 對象的 set 方法或者帶參數的構造方法為我們在創建所需對象時將其屬性自動設置所需要的值的過程,就是依賴注入的思想