此博客為學(xué)習(xí)筆記秸歧,記錄下來怕自己后面學(xué)著學(xué)著忘記了洞焙。
csdn內(nèi)容同步蹋半,id同名,csdn博客鏈接
Spring簡介
Spring是一個(gè)輕量級Java開發(fā)框架,核心是控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器账阻,由Rod Johnson創(chuàng)建蒂秘,目的是為了解決企業(yè)級應(yīng)用開發(fā)的業(yè)務(wù)邏輯與其他各層的耦合問題。
何為耦合淘太?
耦合;程序間的依賴關(guān)系姻僧,包括以下兩種规丽。
①類之間的依賴
②方法之間的依賴
耦合弊端:獨(dú)立性很差,代碼維護(hù)難度相對較高
解耦:盡可能降低程序間的依賴關(guān)系
實(shí)際開發(fā)中應(yīng)該做到:編譯期間不依賴,運(yùn)行時(shí)才依賴
解耦思路:
第一步:使用反射來創(chuàng)建對象撇贺,而避免使用new關(guān)鍵字
第二步:通過讀取配置文件來獲取要創(chuàng)建的對象權(quán)限定類名
Spring體系結(jié)構(gòu)
Spring框架已集成20多個(gè)模塊赌莺,包括核心容器,數(shù)據(jù)訪問/集成層松嘶,web層雄嚣,AOP面向切面編程模塊,Aspects切面喘蟆,Instrumentation植入模塊缓升,Messaging消息傳輸,Test測試蕴轨。
這是官方體系圖:
①核心容器(Core Container)
Spring的核心容器是其他模塊建立的基礎(chǔ)港谊。
Spring-core:提供框架的基本組成部分,包括 控制反轉(zhuǎn)(IoC)和依賴注入(DI) 功能橙弱。
Spring-beans:提供BeanFactory歧寺,由工廠模式實(shí)現(xiàn),Spring將代理對象稱為Bean棘脐。
Spring-context:建立在core和beans基礎(chǔ)上斜筐,提供框架式的訪問方式。
Spring-SpEL:表達(dá)式語言 Spring Expression Language(簡稱 SpEL ),支持運(yùn)行時(shí)查詢和操作對象圖的表達(dá)式語言.
②數(shù)據(jù)庫訪問/集成
Spring-jdbc:提供JDBC抽象層蛀缝,消除編碼和特有的數(shù)據(jù)庫錯(cuò)誤解析顷链。
Spring-orm:為對象關(guān)系映射API提供集成層。
Spring-oxm:提供支持對象/xml映射的抽象層實(shí)現(xiàn)屈梁。
Spring-jms:Java消息傳遞服務(wù)嗤练。
Spring-tx:事務(wù),實(shí)現(xiàn)特殊接口和普通Java對象類的編程和聲明式事務(wù)管理在讶。
③Web
Spring-web:提供web開發(fā)基本的集成功能煞抬。
Spring-webmvc:即Web-Servlet,包含用于web應(yīng)用的SpringMVC和REST Web Servies實(shí)現(xiàn)构哺。
Spring-websocket:提供WebSocket和SockJS實(shí)現(xiàn)革答。
Portlet:類似于Servlet模塊的功能。
④Spring-test
支持用JUnit和Spring組件進(jìn)行單元測試和集成測試曙强。
⑤其他
Spring-aop:提供符合AOP要求的面向切面的編程實(shí)現(xiàn)残拐。
Spring-aspects:提供與AspectJ的集成功能。
Spring-Instrument:提供類植入和類加載器的實(shí)現(xiàn)旗扑。
Spring-messaging:提供對消息傳遞體系結(jié)構(gòu)和協(xié)議的支持蹦骑。
emmmm....概念真多,但以后會在實(shí)際開發(fā)的運(yùn)用,應(yīng)該會對該體系慢慢深入理解臀防。