Spring 的三大核心思想是DI(依賴注入),IOC(控制反轉),AOP(面向切面編程)。框架分爲Spring Core、Spring Context、Spring DAO、Spring ORM、Spring AOP、Spring Web、Spring Web MVC七大模塊。java
IOC的概念以及在Spring容器中如何進行IOC的操做。 數據庫
IOC:Inversion of Control,控制反轉。在Java開發中,IOC意味着將你設計好的類交給系統去控這裏寫代碼片制,而不是在你的類內部控制,這稱爲控制反轉,就是被調用類的實例由原先的調用類控制建立、銷燬如今轉變成由Spring的容器管理。編程
Core封裝包是框架最基礎的部分,使用的是經典的工廠模式,經過BeanFactory提供依賴注入(DI)實現對JavaBean的管理,也就是控制反轉(IOC)。消減代碼之間的耦合。性能優化
Context封裝包是在Spring Core封裝包的基礎上構建的,提供了一種框架式訪問對象的方式,有些像JNDI註冊。Context包繼承了Beans包的功能,還增長了國際化(I18N)的支持(例如資源綁定),事件傳播,資源裝載的方式以及透明建立上下文,好比經過Servlet容器。架構
DAO(Data Access Object)提供了JDBC的抽象層,它消除冗長的JDBC編碼和解析數據庫廠商特有的錯誤代碼。而且,JDBC封裝包還提供了一種編程性更好的聲明性事務管理方法,不單單是實現了特定接口,並且對因此的POJOs(plain old java objects)都適用。併發
ORM封裝包提供了經常使用的‘對象-關係’映射APIs的集成層,其中包括JPA、JDO、Hibernate、iBatis。利用ORM封裝包,能夠混合的使用因此Spring提供的特性進行‘對象-關係’映射,如簡單聲明性事務管理。框架
AOP封裝包提供符合AOP Alliance規則的面向切面的編程實現,能夠定義方法攔截器(method-interceptors)和切點(pointcuts),從邏輯上講減弱了代碼的功能耦合,清晰的備分離開,並且,利用source-level的元數據功能,還能夠將各類行爲信息合併到你的代碼中。分佈式
Web包提供了基礎的針對Web開發的集成特性,例如多方文件上傳,利用Servlet listeners進行IOC容器初始化和針對Web的ApplicationContext。當與WebWork或Struts一塊兒使用Spring時,這個包使Spring能夠與其餘框架結合。微服務
在此我向你們推薦一個架構學習交流羣。交流學習羣號:575745314 裏面會分享一些資深架構師錄製的視頻錄像:有Spring,MyBatis,Netty源碼分析,高併發、高性能、分佈式、微服務架構的原理,JVM性能優化、分佈式架構等這些成爲架構師必備的知識體系。還能領取免費的學習資源,目前受益良多高併發
Spring中的MVC封裝包提供了Web應用的Model-View-Control實現。Spring的MVC框架並非僅僅提供一種傳統的實現,它提供了一種清晰的分離模型,在領域模型代碼和Web Form之間。而且,還能夠藉助Spring框架的其餘特性。