從業(yè)的十多年,Spring的使用發(fā)生了“翻天覆地”的變化
文章目錄
- spring 靈魂
- Ioc
- DI
- spring蛻變
- 基于xml配置
- 注解配置
- JavaConfig能力
- spring boot 王炸
- spring變化路線
2009年,剛?cè)胄信嘤?xùn)時(shí),最火的三款框架struts1、hibernate、spring,我還記得那時(shí)前輩說過的一句話,“spring最大的用處是你不知道什么時(shí)候在用他”。那時(shí)候ssh的框架配置文件很多,除了web.xml,不僅關(guān)于spring的還有struts1的,各種配置文件,琳瑯滿目。那時(shí)候能自己獨(dú)立集成這三個(gè)框架說明已是熟練工了,哪像現(xiàn)在即使小白也能用spring boot快速進(jìn)行開發(fā)。
spring 靈魂
Ioc,Inversion of Control,控制反轉(zhuǎn)。
DI,Dependency Injection,依賴注入。
Ioc
控制反轉(zhuǎn),簡單來說就是創(chuàng)建對(duì)象不用手動(dòng)去new一個(gè)對(duì)象了,使用時(shí)直接在容器里拿出來用即可。實(shí)際上來說是把對(duì)象的生命周期托管到Spring容器了,使用方式被反轉(zhuǎn)了。

DI
依賴注入,簡單說就是將依賴關(guān)系動(dòng)態(tài)的注入到容器中。因?yàn)樵缙趕pring版本中,主要通過xml的方式來定義Bean,Spring解析相關(guān)xml文件,并把定義的bean裝載到IoC容器中。
注入方式包含,接口注入、構(gòu)造器注入和setter方式注入。我使用最多的setter方法實(shí)現(xiàn)依賴注入。
spring蛻變
其實(shí)spring的使用變化是開發(fā)者使用的越來越方便的一個(gè)過程,其本質(zhì)還是Ioc和DI。
基于xml配置
我早期接觸spring框架,主要表現(xiàn)在使用xml文件進(jìn)行對(duì)象生命周期的描述和管理,項(xiàng)目中存在大量的xml文件,為了便于管理,每個(gè)模塊配置一個(gè)xml文件,每個(gè)xml文件中都是如下代碼。
隨著項(xiàng)目規(guī)模越來越大,XML文件也隨之增多,所以難以管理的問題也越來越突顯。并且依賴關(guān)系也越來越復(fù)雜,配置文件變得“臟亂差”。所以是時(shí)候需要改變了。
注解配置
從Spring 2.X開始提供使用注解的方式來聲明Bean和注入依賴關(guān)系,這樣大大減少了XML的配置量。
常用注解:@Service @Repository @Controller @Component等
在application.xml文件中使用component-scan配置掃描路徑。
這樣在com.example包路徑下的,使用@Service @Repository @Controller @Component等注解的類,都會(huì)被裝載到IoC容器。
JavaConfig能力
Spring升級(jí)到3.X版本后,提供了JavaConfig能力,它就可以完全取代XML了,通過Java代碼的方式完成Bean的注入。
這個(gè)時(shí)候@Configuration注解橫空而出,用它標(biāo)注的類就等同于一個(gè)xml文件。@Bean注解將一個(gè)對(duì)象注入IoC容器中,默認(rèn)使用方法名作為該Bean的id。
@Configuration
public class XxxConfig{
@Bean
public User user(){
User user = new User();
user.SetAddress(address());
return user;
}
@Bean
public Address address(){
return new Address();
}
}
但是隨著時(shí)代的進(jìn)步,程序員開發(fā)越來越方便了,但是依然存在下面的問題:
- 依賴過多,導(dǎo)致版本兼容的問題很常見。
- 配置太多,比如MyBatis整合的化,需要配置注解驅(qū)動(dòng)、數(shù)據(jù)源、事務(wù)管理器、映射器掃描等基礎(chǔ)配置,每個(gè)項(xiàng)目都需要配置一遍,很多工作重復(fù)。
- 運(yùn)行部署麻煩,先打包,在部署到容器上。
所以是時(shí)候需要改變了。
spring boot 王炸
spring boot主要就是簡化spring應(yīng)用的開發(fā),開發(fā)者不用關(guān)注配置、版本兼容等問題,只需要通過少量代碼就可以創(chuàng)建一個(gè)產(chǎn)品級(jí)的Spring應(yīng)用?!凹s定優(yōu)于配置”(Convention over Configuration)貫穿spring boot始終。
spring boot不僅簡化了單體應(yīng)用的開發(fā),甚至是Spring Cloud的核心,所以未來我們繼續(xù)擁抱spring boot吧。
spring變化路線

本文僅代表作者觀點(diǎn),版權(quán)歸原創(chuàng)者所有,如需轉(zhuǎn)載請?jiān)谖闹凶⒚鱽碓醇白髡呙帧?/p>
免責(zé)聲明:本文系轉(zhuǎn)載編輯文章,僅作分享之用。如分享內(nèi)容、圖片侵犯到您的版權(quán)或非授權(quán)發(fā)布,請及時(shí)與我們聯(lián)系進(jìn)行審核處理或刪除,您可以發(fā)送材料至郵箱:service@tojoy.com






