Spring In Action 4 第一章 付諸行動(dòng)

對(duì)于Java開(kāi)發(fā)者來(lái)說(shuō),現(xiàn)在是一個(gè)很好的時(shí)期。

在20年的歷史中,Java經(jīng)歷過(guò)一些好的時(shí)期以及不好的時(shí)期。盡管存在著一些粗糙點(diǎn)(rough spots),例如applets, Enterprise JavaBeans(EJB), Java Data Objects(JDO),以及數(shù)不盡的日志框架,Java仍然擁有著一個(gè)豐富的多樣化的歷史,作為許多企業(yè)級(jí)軟件的平臺(tái)而言。而且,Spring在這一段歷史上占有很重要的一筆。

在早期,Spring作為更加重量級(jí)的Java技術(shù)(特別是EJB)的替代品被創(chuàng)造出來(lái)。相比EJB,Spring提供了一個(gè)更輕量更簡(jiǎn)潔的的編程模型。它給予了普通Java對(duì)象(POJO)更加強(qiáng)大的能力,而這些能力是EJB和一些其他Java規(guī)格才擁有的。

隨著時(shí)間的過(guò)去,EJB和J2EE得到了發(fā)展。EJB開(kāi)始自身提供簡(jiǎn)單的面向POJO的變成模型?,F(xiàn)在EJB利用了諸如依賴(lài)注入和面向方面變成的思想,可以說(shuō)其靈感來(lái)自于Spring的成功。

雖然J2EE(現(xiàn)在被稱(chēng)為JEE)可以趕上Spring,但是Spring從未停止前進(jìn)的腳步。Spring持續(xù)的發(fā)展各個(gè)領(lǐng)域。而這些領(lǐng)域,即使是現(xiàn)在,JEE才剛剛開(kāi)始開(kāi)始探索,甚至還未引入。移動(dòng)開(kāi)發(fā),社交API集成,NoSQL數(shù)據(jù)庫(kù),云計(jì)算,以及大數(shù)據(jù)只是Spring引入的一小部分領(lǐng)域。而且,未來(lái)的Spring依然一片光明。

正如我所說(shuō),對(duì)于開(kāi)發(fā)者來(lái)說(shuō),現(xiàn)在是一個(gè)很好的時(shí)期。

這本書(shū)是對(duì)Spring的一個(gè)探索。在這一章節(jié),我們將在高層次測(cè)試Spring,讓你品嘗一下Spring到底是什么。這一章將讓你明白Spring到底解決了各種什么樣的問(wèn)題,并且未這本書(shū)的其余部分做好準(zhǔn)備。

1.1 簡(jiǎn)化Java開(kāi)發(fā)

Spring是由Rod Johnson創(chuàng)造的一個(gè)開(kāi)源框架。Spring被創(chuàng)造出來(lái)以解決企業(yè)級(jí)應(yīng)用開(kāi)發(fā)的復(fù)雜問(wèn)題,并且讓普通的JavaBeans(plain-vanilla JavaBeans)能夠完成此前只有EJB才可能完成的任務(wù)。但是Spring的用處并不僅僅局限于服務(wù)器端開(kāi)發(fā)。而且Java應(yīng)用可以從Spring中獲益,例如間接性、可測(cè)試性以及松耦合。

另一種意義的bean...雖然在表示應(yīng)用組件時(shí),Spring大方地使用了bean和JavaBean這兩個(gè)詞,但這并不表示一個(gè)Spring組件必須嚴(yán)格地遵從JavaBean的規(guī)格。一個(gè)Spring組件可以是任何形式的POJO。在本書(shū)中,我假設(shè)JavaBean是一個(gè)寬松的定義,與POJO同義。

通過(guò)本書(shū)你將了解到,Spring做了許多事情。但是Spring提供的幾乎每一個(gè)功能的根基,是一些非?;A(chǔ)的想法,全部專(zhuān)注于Spring的基本任務(wù):Spring簡(jiǎn)化Java開(kāi)發(fā)。

這里是粗體!大量的框架說(shuō)要簡(jiǎn)化某一些事物。但是Spring旨在簡(jiǎn)化Java開(kāi)發(fā)這一廣泛主題。這還需要更多的解釋。Spring是如何簡(jiǎn)化Java開(kāi)發(fā)的呢?

為了支持對(duì)Java復(fù)雜度的攻擊,Spring利用了4個(gè)關(guān)鍵策略:

利用POJO的輕量級(jí)與最小侵入式開(kāi)發(fā)(Lightweight and minimally invasive development with POJOs)

通過(guò)DI和面向接口實(shí)現(xiàn)松耦合(Loose coupling through DI and interface orientation)

通過(guò)方面和普通慣例實(shí)現(xiàn)聲明式編程(Declarative programming through aspects and common conventions)

利用方面和模板消除陳詞濫調(diào)的代碼(Eliminating boilerplate code with aspects and templates)

基本上Spring做的每一件事都可以追溯到這四條策略中的一條或幾條上。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容