使用Spring開發已經有四年時間了, 雖然在工做第二年看過spring完整的源碼, 而且本身也從0到1完整搭建過Spring web的框架. 這兩年沒怎麼看關於spring相關的內容, 如今也一直在用Spring Boot進行開發, 因此今天好好總結下Spring框架的核心思想, 除了記錄一下本身對於Spring的理解,同時也增強對於Spring Boot的認識.java
Spring的主要架構圖以下: 從圖中能夠看出, Spring框架中核心組件只有三個: Core, Context, Beans. 掌握這三個核心組件的原理, 基本上就掌握了Spring框架的核心內容. 這三個組件分別對應三個jar包, 分別爲org.springframework:spring-core,org.springframework:spring-context,org.springframework:spring-beans. 這三個jar包在任何一個spring工程中都可以找到.web
在Spring中, Bean是主要執行業務動做的對象, Context是保存對象以及對象關係的容器即IOC容器, Core就是發現, 創建,維護每一個Bean之間關係的工具. 若是舉個例子進行類比, Context相似於舞臺, Bean就是負責演出的演員, Core就是演出的道具. 固然了除了這些基礎的功能, Spring還提供了不少特點的功能, 好比AOP, 事務等. 以下面圖示: spring