關(guān)于Spring組成的七大模塊詳解
Spring 由七大模塊組成
分別是Spring 核心容器(Spring Core)、應(yīng)用上下文(Spring Context)、Spring面向切面編程(Spring AOP)、JDBC和DAO模塊(Spring DAO)、對象實(shí)體映射(Spring ORM)、Web模塊(Spring Web)以及MVC模塊(SpringWebMVC)。

1、核心容器(Spring Core)
核心容器提供Spring框架的基礎(chǔ)功能。
Spring以bean的方式進(jìn)行java應(yīng)用的各大組件及關(guān)系的組織和管理。
Spring使用BeanFactory來產(chǎn)生和管理bean,是工廠模式的實(shí)現(xiàn)。
BeanFactory使用控制反轉(zhuǎn)(IOC)模式來將應(yīng)用的配置和依賴性規(guī)范與實(shí)際的應(yīng)用程序代碼分開。
2、應(yīng)用上下文(Spring Context)
實(shí)現(xiàn)了ApplicationContext接口,Spring的上下文,拓展了核心容器,提供事件處理、國際化等功能。
它還提供了一些企業(yè)級服務(wù)的功能,提供了JNDI、EJB、RMI的支持。
3、Spring面向切面編程(Spring AOP)
提供切面支持,是個(gè)輕量級的容器。
Spring管理的任何對象都支持AOP,SpringAOP模塊基于Spring的應(yīng)用程序中的對象提供了事務(wù)管理服務(wù),通過使用SpringAOP,就可以將聲明性事務(wù)管理集成在應(yīng)用程序中。
4、JDBC和DAO模塊(Spring DAO)
提供對JDBC的支持,還提供了DAO的支持,提供事務(wù)支持。
JDBC、DAO的抽象層,提供了有意義的異常層次結(jié)構(gòu)實(shí)現(xiàn),可用該結(jié)構(gòu)來管理異常處理,和不同數(shù)據(jù)庫提供商拋出的錯(cuò)誤信息,異常層次結(jié)構(gòu)簡化了錯(cuò)誤處理,并且極大的降低了需要編寫的代碼數(shù)量,比如打開和關(guān)閉鏈接。
5、對象實(shí)體映射(Spring ORM)
ORM:Object Relational Mapping,指對象實(shí)體映射。
Spring插入了若干個(gè)ORM框架,提供了ORM對象的關(guān)系工具,其中包括Hibernate,JDO和IBatisSQL Map等,所有這些都遵從Spring的通用事務(wù)和DAO異常層次結(jié)構(gòu)。
6、Web模塊(Spring Web)
拓展了Spring上下文,提供Web應(yīng)用上下文,對Web開發(fā)提供功能上的支持,如請求、表單、異常等。
7、MVC模塊(SpringWebMVC)
MVC框架是一個(gè)全功能的構(gòu)建Web應(yīng)用程序的MVC實(shí)現(xiàn),通過策略接口,MVC框架編程高度可配置的,MVC容納了大量視圖技術(shù),其中包括JSP,POI等,模型由JavaBean來構(gòu)成,存放于m當(dāng)中,而視圖是一個(gè)接口,負(fù)責(zé)實(shí)現(xiàn)模型,控制器表示邏輯代碼,由c的事情。
spring框架的功能可以用在任何J2EE服務(wù)器當(dāng)中,大多數(shù)功能也適用于不受管理的環(huán)境,spring的核心要點(diǎn)就是支持不綁定到特定J2EE服務(wù)的可重用業(yè)務(wù)和數(shù)據(jù)的訪問對象,毫無疑問這樣的對象可以在不同的J2EE環(huán)境,獨(dú)立應(yīng)用程序和測試環(huán)境之間重用。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
spring?bean標(biāo)簽中的init-method和destroy-method詳解
這篇文章主要介紹了spring?bean標(biāo)簽中的init-method和destroy-method,在很多項(xiàng)目中,經(jīng)常在xml配置文件中看到init-method 或者 destroy-method ,因此整理收集下,方便以后參考和學(xué)習(xí),需要的朋友可以參考下2023-04-04
使用HttpClient實(shí)現(xiàn)文件的上傳下載方法
下面小編就為大家?guī)硪黄褂肏ttpClient實(shí)現(xiàn)文件的上傳下載方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-12-12
解決java使用axios.js的post請求后臺時(shí)無法接收到入?yún)⒌膯栴}
今天小編就為大家分享一篇解決java使用axios.js的post請求后臺時(shí)無法接收到入?yún)⒌膯栴},具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09
Spring Data JPA開啟批量更新時(shí)樂觀鎖失效問題的解決方法
樂觀鎖的基本思想是,認(rèn)為在大多數(shù)情況下,數(shù)據(jù)訪問不會導(dǎo)致沖突,因此,樂觀鎖允許多個(gè)事務(wù)同時(shí)讀取和修改相同的數(shù)據(jù),而不進(jìn)行顯式的鎖定,本文給大家介紹了Spring Data JPA開啟批量更新時(shí)樂觀鎖失效問題的解決方法,需要的朋友可以參考下2024-07-07
Struts2學(xué)習(xí)教程之輸入校驗(yàn)示例詳解
這篇文章主要給大家介紹了關(guān)于Struts2學(xué)習(xí)教程之輸入校驗(yàn)的相關(guān)資料,文中通過示例介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用struts2具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05
tk.mybatis如何擴(kuò)展自己的通用mapper
這篇文章主要介紹了tk.mybatis如何擴(kuò)展自己的通用mapper操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
基于Java編寫一個(gè)實(shí)用的ExcelUtil工具類
在項(xiàng)目中經(jīng)常遇到excel表格導(dǎo)入導(dǎo)出功能,每次都要重復(fù)寫有關(guān)excel 的邏輯,所以本文直接使用Java編寫一個(gè)實(shí)用的ExcelUtil工具類,希望對大家有所幫助2024-04-04

