Spring框架介紹
Spring是一個(gè)輕量級(jí)Java開發(fā)框架,最早有Rod Johnson創(chuàng)建,目的是為了解決企業(yè)級(jí)應(yīng)用開發(fā)的業(yè)務(wù)邏輯層和其他各層的耦合問題。它是一個(gè)分層的JavaSE/JavaEE full-stack(一站式)輕量級(jí)開源框架,為開發(fā)Java應(yīng)用程序提供全面的基礎(chǔ)架構(gòu)支持。Spring負(fù)責(zé)基礎(chǔ)架構(gòu),因此Java開發(fā)者可以專注于應(yīng)用程序的開發(fā)。
Spring最根本的使命是解決企業(yè)級(jí)應(yīng)用開發(fā)的復(fù)雜性,即簡(jiǎn)化Java開發(fā)。
Spring可以做很多事情,它為企業(yè)級(jí)開發(fā)提供了豐富的功能,但是這些功能的底層都依賴于它的兩個(gè)核心特性,也就是依賴注入(dependency injection,DI)和面向切面編程(aspect-oriented programming,AOP)。
Spring框架的模塊組成可參考這篇文章
為了降低Java開發(fā)的復(fù)雜性,Spring采取了以下4種關(guān)鍵策略:
基于POJO的輕量級(jí)和最小侵入性編程;
通過依賴注入和面向接口實(shí)現(xiàn)松耦合;
基于切面和慣例進(jìn)行聲明式編程;
通過切面和模板減少樣板式代碼。
Spring框架核心
Spring設(shè)計(jì)目標(biāo):Spring為開發(fā)者提供一個(gè)一站式輕量級(jí)應(yīng)用開發(fā)平臺(tái);
Spring設(shè)計(jì)理念:在JavaEE開發(fā)中,支持POJO和JavaBean開發(fā)方式,使應(yīng)用面向接口開發(fā),充分支持OO(面向?qū)ο螅┰O(shè)計(jì)方法;Spring通過IoC容器實(shí)現(xiàn)對(duì)象耦合關(guān)系的管理,并實(shí)現(xiàn)依賴反轉(zhuǎn),將對(duì)象之間的依賴關(guān)系交給IoC容器,實(shí)現(xiàn)解耦;
Spring框架的核心:IoC容器和AOP模塊。通過IoC容器管理POJO對(duì)象以及他們之間的耦合關(guān)系;通過AOP以動(dòng)態(tài)非侵入的方式增強(qiáng)服務(wù)。
Spring的優(yōu)缺點(diǎn)
優(yōu)點(diǎn)
方便解耦,簡(jiǎn)化開發(fā)
Spring就是一個(gè)大工廠,可以將所有對(duì)象的創(chuàng)建和依賴關(guān)系的維護(hù),交給Spring管理。
AOP編程的支持
Spring提供面向切面編程,可以方便的實(shí)現(xiàn)對(duì)程序進(jìn)行權(quán)限攔截、運(yùn)行監(jiān)控等功能。
聲明式事務(wù)的支持
只需要通過配置就可以完成對(duì)事務(wù)的管理,而無需手動(dòng)編程。
方便程序的測(cè)試
Spring對(duì)Junit4支持,可以通過注解方便的測(cè)試Spring程序。
方便集成各種優(yōu)秀框架
Spring不排斥各種優(yōu)秀的開源框架,其內(nèi)部提供了對(duì)各種優(yōu)秀框架的直接支持(如:Struts、Hibernate、MyBatis等)。
降低JavaEE API的使用難度
Spring對(duì)JavaEE開發(fā)中非常難用的一些API(JDBC、JavaMail、遠(yuǎn)程調(diào)用等),都提供了封裝,使這些API應(yīng)用難度大大降低。
缺點(diǎn)
Spring明明一個(gè)很輕量級(jí)的框架,卻給人感覺大而全
Spring依賴反射,反射影響性能
使用門檻升高,入門Spring需要較長(zhǎng)時(shí)間
Spring的應(yīng)用場(chǎng)景
應(yīng)用場(chǎng)景:JavaEE企業(yè)應(yīng)用開發(fā),包括SSH、SSM等
Spring價(jià)值:
Spring是非侵入式的框架,目標(biāo)是使應(yīng)用程序代碼對(duì)框架依賴最小化;
Spring提供一個(gè)一致的編程模型,使應(yīng)用直接使用POJO開發(fā),與運(yùn)行環(huán)境隔離開來;
Spring推動(dòng)應(yīng)用設(shè)計(jì)風(fēng)格向面向?qū)ο蠛兔嫦蚪涌陂_發(fā)轉(zhuǎn)變,提高了代碼的重用性和可測(cè)試性;
為什么要學(xué)Spring框架
Spring技術(shù)是JavaEE開發(fā)必備技能,企業(yè)開發(fā)技術(shù)選型命中率>90% 專業(yè)角度 簡(jiǎn)化開發(fā),降低企業(yè)級(jí)開發(fā)的復(fù)雜性 框架整合,高效整合其他技術(shù),提高企業(yè)級(jí)應(yīng)用開發(fā)與運(yùn)行效率
Spring框架學(xué)什么
簡(jiǎn)化開發(fā) IoC AOP 事務(wù)處理 框架整合 MyBatis MyBatis-plus Struts Struts2 Hibernate ……
學(xué)習(xí)Spring框架設(shè)計(jì)思想 學(xué)習(xí)基礎(chǔ)操作,思考操作與思想間的聯(lián)系 學(xué)習(xí)案例,熟練應(yīng)用操作的同時(shí),體會(huì)思想
浙公網(wǎng)安備 33010602011771號(hào)