一. Spring是什么?
- Spring由Rod johnson開發;
- 是一個非常活躍的開源框架;
- 它幫助分離項目組件(對象)之間的依賴關系;
- 它的主要目的是簡化企業開發
二. Spring的核心概念
-
IOC
- Inversion of Control
- 控制反轉
- 對象創建&對象之間維護的控制權由程序員管理變為由Spring管理
-
DI
- Dependency Injection
- 依賴注入
- 表示對象和對象之間的依賴關系管理
-
AOP
- Aspect Oriented Programming
- 面向切面編程
三. Spring的框架組成
Spring框架的功能大約由20個模塊組成,這些模塊按組可以分為:
Core Container(核心容器):
- Beans:負責Bean工廠中Bean的裝配,所謂Bean工廠即是創建對象的工廠,Bean的裝配也就是對象的創建工作;
- Core:這個模塊即是負責IOC(控制反轉)最基本的實現;
- Context:Spring的IOC容器,因大量調用Spring Core中的函數,整合了Spring的大部分功能。Bean創建好對象后,由Context負責建立Bean與Bean之間的關系並維護。所以也可以把Context看成是Bean關系的集合;
- SpEl:即Spring Expression Language(Spring表達式語言);
Data Access/Integration(數據訪問/集成):
- JDBC:對JDBC的簡單封裝;
- ORM:支持數據集成框架的封裝(如Mybatis,Hibernate);
- OXM:即Object XML Mapper,它的作用是在Java對象和XML文檔之間來回轉換;
- JMS:生產者和消費者的消息功能的實現;
- Transations:事務管理,不多BB;
Web:
- WebSocket:提供Socket通信,web端的的推送功能;
- Servlet:Spring MVC框架的實現;
- Web:包含web應用開發用到Spring框架時所需的核心類,包括自動載入WebApplicationContext特性的類,Struts集成類、文件上傳的支持類、Filter類和大量輔助工具類;
- Portlet:實現web模塊功能的聚合(如網站首頁(Port)下面可能會有不同的子窗口(Portlet));
AOP:
- 面向切面;
Aspects:
- 同樣是面向切面的一個重要的組成部分,提供對AspectJ框架的整合;
Instrumentation(設備):
- 相當於一個檢測器,提供對JVM以及對Tomcat的檢測;
Messaging(消息):
- Spring提供的對消息處理的功能;
Test(測試):
- 我們在做單元測試時,Spring會幫我們初始化一些測試過程當中需要用到的資源對象;