亚洲欧美日韩熟女|做爱高潮视频网址|国产一区二区三级片|国产Av中文字幕www.性色av|亚洲婷婷永久免费|国产高清中文字幕|欧美变态网站久re视频精品|人妻AV鲁丝第一页|天堂AV一区二区在线观看|综合 91在线精品

從業(yè)的十多年,Spring的使用發(fā)生了“翻天覆地”的變化

2023-04-12


文章目錄

  • 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