Spring 系列教程
- Spring 框架介紹
- Spring 框架模塊
- Spring開發(fā)環(huán)境搭建(Eclipse)
- 創(chuàng)建一個簡單的Spring應用
- Spring 控制反轉(zhuǎn)容器(Inversion of Control – IOC)
- 理解依賴注入(DI – Dependency Injection)
- Bean XML 配置(1)- 通過XML配置加載Bean
- Bean XML 配置(2)- Bean作用域與生命周期回調(diào)方法配置
- Bean XML 配置(3)- 依賴注入配置
- Bean XML 配置(4)- 自動裝配
- Bean 注解(Annotation)配置(1)- 通過注解加載Bean
- Bean 注解(Annotation)配置(2)- Bean作用域與生命周期回調(diào)方法配置
- Bean 注解(Annotation)配置(3)- 依賴注入配置
- Bean Java配置
- Spring 面向切面編程(AOP)
- Spring 事件(1)- 內(nèi)置事件
- Spring 事件(2)- 自定義事件
Spring是一個JEE開發(fā)框架,開源媳纬,輕量級蓖乘,功能強大坎弯。
JEE - Java Enterprise Edition / Java企業(yè)版
主要用于開發(fā)企業(yè)軟件的Java版本。企業(yè)軟件例子:會計軟件振诬、帳單管理、業(yè)務流程管理、CMS傀蓉、CRM、ERP等职抡。
Spring框架的核心特性是依賴注入(DI)與面向切面編程(AOP)葬燎,Spring框架可以看作是一個控制反轉(zhuǎn)的容器。盡管Spring主要用于JEE應用開發(fā),但實際上這2個核心特性可用于任何Java項目谱净。
Spring框架是Java EE開發(fā)中最流行的框架窑邦,已經(jīng)成為JEE事實上的標準,全世界的開發(fā)人員都在使用Spring框架開發(fā)各種應用壕探。
Spring框架是澳大利亞計算機專家Roderick B. Johnson于2002年發(fā)布冈钦,誕生以來發(fā)布了很多版本,目前最新版是5.0
Spring框架優(yōu)點
- 松耦合李请,組件(Bean)之間依賴很松瞧筛,模塊可以輕松替換
- 簡單,非侵入式导盅,組件(Bean)本身只是簡單的Java對象较幌,無需任何特殊處理,非常簡單
依賴注入/DI(控制反轉(zhuǎn)/IOC)
Spring框架2個核心技術之一是依賴注入(Dependency Injection / DI)白翻。
Java程序中乍炉,Java類是基本的代碼組織單位。當某個類要使用另一個類時嘁字,自然的做法是創(chuàng)建另一個類的對象恩急,然后調(diào)用該對象的方法。這樣做在程序規(guī)模較小時沒什么問題纪蜒,但當程序規(guī)模很大時這些類之間過于緊密的耦合會導致后續(xù)開發(fā)維護困難衷恭。例如要替換其中某個類,就不得不修改所有涉及這個類的代碼纯续。
控制反轉(zhuǎn)(Inversion of Control / IoC)與依賴注入(Dependency Injection / DI)就是為解決這個問題随珠。上面提到類里面創(chuàng)建另外一個類對象會造成耦合太緊,Spring框架就把創(chuàng)建類的行為從類中拿出來放到Spring框架里去做猬错,類與類之間創(chuàng)建關系就沒有了窗看。
本來由類控制其所依賴的類對象的創(chuàng)建,現(xiàn)在把創(chuàng)建動作放到Spring框架里了倦炒,由框架控制所有類對象的創(chuàng)建显沈,這就是“控制反轉(zhuǎn)”。
框架創(chuàng)建了類所依賴的對象逢唤,然后把這些對象傳給(注入)依賴它們的類拉讯,這就是“依賴注入”。
所以可以看到鳖藕,Spring框架中控制反轉(zhuǎn)(Inversion of Control / IoC)與依賴注入(Dependency Injection / DI)實際上講的是同一個事情魔慷,只是角度不同。
關于依賴注入著恩,后續(xù)會有詳細介紹院尔。
面向切面編程/AOP
Spring框架另外一個核心技術是面向切面編程(Aspect Oriented Programming/AOP)蜻展。
面向切面編程的主要作用是,在不修改源代碼的情況下邀摆,可以給目標類打補丁纵顾,讓其執(zhí)行補丁中的代碼。
例如隧熙,用戶類中有個登錄方法片挂,現(xiàn)在需要加用戶登錄日志幻林。使用AOP就不需要修改用戶登錄方法贞盯,只需把日志代碼注入到用戶登錄方法前后,讓其執(zhí)行沪饺。日志代碼就是“切面”躏敢,插入代碼的地方(用戶類的登錄方法)就是“連接點”。
關于AOP后續(xù)會有詳細介紹整葡。
注意:依賴注入/DI(控制反轉(zhuǎn)/IOC)與 面向切面編程/AOP都是基于Java的反射機制件余。