1. 程式人生 > >2.spring的主要模塊作用

2.spring的主要模塊作用

工具 系統 組件 配置文件 tis tnginx str htm 管理bean

spring中大約包含20過個模塊, 主要包括以下幾部分:

1. Core Container

Core Container(核心容器)包含Core,Beans,Context和Expression Language模塊

Core和Beans是spring的基礎部分,提供IOC和依賴註入的特性, 基礎概念是BeanFactory, 它提供對Factory模式的經典實現來消除對程序性單列模式的需求,並使得可以程序從邏輯中分離出依賴關系和配置.

Core: 主要包含spring框架基本的核心工具類, core模塊是其他組件的基本核心.

Beans: beans模塊是所有應用都要用到的, 它包含訪問配置文件,創建和管理bean以及進行IOC/DI操作相關的所有類.

Context: 在core和bean的基礎上, 提供了一種類似於JNDI(Java命名和目錄接口,所有與系統外部的資源的引用,都可以通過JNDI定義和引用https://www.cnblogs.com/shawnblogs/p/5279733.html), Context繼承了Beans的特性,為spring核心提供了大量的擴展,添加了國家化,時間傳播,資源加載和EJB以及JMX的支持, 其中ApplicationContext接口是Context的核心.

Expression Language: 是jsp規範中定義的unifed expression language的一個擴展, 用於在運行時查詢和操作對象, 支持設置/獲取屬性的值, 屬性的分配, 方法的調用,訪問數組上下文等操作.

2.Data Access/Integration

JDBC: 提供一個JDBC抽象層,消除冗長的JDBC編碼和解析數據庫廠商特有的錯誤代碼, 包含了對jdbc數據庫訪問進行封裝的所有類

ORM: 對象-關系映射API, 如JPA, JDO, Hibernate, Mybatis等, 提供了一個交互層, 利用ORM進行封裝, 可以混合使用所有Spring提供的特性進行O/R映射.

JMS: 主要包含一些制造和消費信息的特性.

Transaction: 對事務的管理, 這些事務必須實現特定的接口, 並且對所有的POJO都使用.

3.Web模塊

WEB模塊提供對常見框架如Struts,JSF的支持,Spring能夠管理這些框架,將Spring的資源註入給框架,也能在這些框架的前後插入攔截器。

web: 提供基礎的面向web的集成特性,如文件上傳,使用servlet listeners初始化IOC容器以及一個面向web的應用上下文.

web-servlet: 包含Spring的model-view-controller(MVC)實現, Spring的MVC框架使得模型範圍內的代碼和web forms之間能夠清楚的分開, 並與Spring框架的其他特性集成在一起.

web-struts: 提供對struts的支持, 是的類在Spring應用中能夠與一個典型的struts web層集成在一起.

4.AOP

AOP(Aspect Oriented Programming),即面向切面編程,可以說是OOP(Object Oriented Programming,面向對象編程)的補充和完善。OOP引入封裝、繼承、多態等概念來建立一種對象層次結構,用於模擬公共行為的一個集合。不過OOP允許開發者定義縱向的關系,但並不適合定義橫向的關系,例如日誌功能。日誌代碼往往橫向地散布在所有對象層次中,而與它對應的對象的核心功能毫無關系對於其他類型的代碼,如安全性、異常處理和透明的持續性也都是如此,這種散布在各處的無關的代碼被稱為橫切(cross cutting),在OOP設計中,它導致了大量代碼的重復,而不利於各個模塊的重用。

AOP技術恰恰相反,它利用一種稱為"橫切"的技術,剖解開封裝的對象內部,並將那些影響了多個類的公共行為封裝到一個可重用模塊,並將其命名為"Aspect",即切面。所謂"切面",簡單說就是那些與業務無關,卻為業務模塊所共同調用的邏輯或責任封裝起來,便於減少系統的重復代碼,降低模塊之間的耦合度,並有利於未來的可操作性和可維護性。

使用"橫切"技術,AOP把軟件系統分為兩個部分:核心關註點橫切關註點。業務處理的主要流程是核心關註點,與之關系不大的部分是橫切關註點。橫切關註點的一個特點是,他們經常發生在核心關註點的多處,而各處基本相似,比如權限認證、日誌、事物。AOP的作用在於分離系統中的各種關註點,將核心關註點和橫切關註點分離開來。

Aspects: 提供了對AspectJ的集成支持

Instrumentation: 提供了Class instrumentation支持和classloader實現,使得可以在特定的應用服務器上的使用.

Join point(連接點):在應用程序中它代表一個點

Pointcut(切入點):這是一組一個或多個連接點,通知應該被執行

Advice(通知): 這是實際行動之前或之後執行的方法

Introduction(引用):引用允許添加新方法或屬性到現有的類中

Target object(被通知對象):被一個或者多個方面所通知的對象,這個對象永遠是一個被代理對象.

Weaving:Weaving 把方面連接到其它的應用程序類型或者對象上,並創建一個被通知的對象,這些可以在編譯時,類加載時和運行時完成.

5. Test

Test模塊支持使用Junit和TestNGINX對Spring組件進行測試

2.spring的主要模塊作用