Spring原理簡述

一蚁堤、什么是Spring容器嫩实?

Spring容器刽辙,也稱Spring Ioc容器或bean容器,是Spring框架的核心甲献,Srping容器對很多人來說是比較抽象難以理解的宰缤;

1、從概念層面講晃洒,對象的創(chuàng)建慨灭、初始化以及銷毀的整個生命周期都交由Spring容器去管理,大大減少了開發(fā)的工作量球及;

2氧骤、從代碼層面講,一個Spring容器就是一個實現了ApplicationContext接口的類的一個實例吃引,即一個Spring容器就是一個AlicaitonContext(對象)


ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

Cat democat = context.getBean("cat",Cat.class);

如上圖筹陵,context就是創(chuàng)建的一個Spring容器,容器里裝載著applicationContext.xml文件中配置的所有對象镊尺。

二朦佩、Spring容器是如何管理對象的

首先先介紹一下兩個概念:IOC(控制反轉)、DI(依賴注冊)庐氮。

IOC:將對象的創(chuàng)建语稠、初始化和銷毀的整個生命周期都交給容器去做,而不是再有程序員自己去new了弄砍,所以稱之為控制反轉仙畦,這個概念顧名思義很好理解,這也與上面介紹Spring容器的概念呼應音婶。

DI:Spring在啟動的時候會實例化所需要的類慨畸,這里以實例化A類為例,若存在A類依賴于B類的情況桃熄,在實例化A對象的過程中會首先實例化B類先口,再實例化A類型奥,依賴傳入A類的方式必須是通過A類的構造函數瞳收,因此A類在實例化的過程中會接收并保存依賴的對象。


//B類

public class Car{

private String color;

private brand;

public Car(String color,String brand){

this.color = color;

this.brand = brand;

}

}

//A類厢汹,依賴于B類

public class Boss{

private Car car;

public Boss(Car car){

this.car = car;

}

}

三螟深、SpringBoot中創(chuàng)建bean的幾種方式

不同于Spring框架中bean的配置都是在xml中進行的,比較繁瑣烫葬,springboot中主要采用注解的方式實現bean的創(chuàng)建

1界弧、注解形式:@Component凡蜻、@Service、@Repository垢箕、@Controller

Spring運行時划栓,容器會自動掃描加載被這些注解修飾的類,自動生成bean条获,并保存到Spring容器中

2忠荞、@Bean形式:配合@Configuration注解創(chuàng)建bean


@Configuration

public class BeanLoadConfig {

    @Bean

    public ConfigDemoBean configDemoBean() {

        return new ConfigDemoBean();

    }

}

@Configuration相當于xml文件中的beans標簽,@Bean相當于bean標簽帅掘,方法名相當于bean標簽中的id委煤,方法的返回值注入到sprig容器中,相當于class的一個實例修档。

具體可參考該博文碧绞,簡單易懂:https://blog.csdn.net/luzhensmart/article/details/90666380

四、Springboot中bean的使用方式

上面講到了Springboot中bean的創(chuàng)建過程吱窝,下面就將如何在項目中使用bean讥邻。

1、使用@AutoWired和@Resource注解實現自動裝配癣诱,如下圖所示:

被@Controller修飾的CaseManagerController類在實例化為bean對象的過程中需要先對依賴CoreAutoTestCase類進行實例化计维,CoreAutoTestCase類實例化生成bean后,通過@Autowired或@Resource注解撕予,裝配注入到當前的bean對象中鲫惶,也就是說CaseManagerController類實例化bean對象中保存有CoreAutoTestCase類的實例化bean對象信息。因為在被@controller修飾的類中幾乎是不存在構造函數的实抡,我們上一章節(jié)講到依賴只能通過構造函數注入到當前的bean中欠母,因此@AutoWired和@Resource注解也相當于起到了一個這樣的一個構造函數的作用,下面我們就要將通過構造函數的方式使用bean對象了吆寨。


@Controller

public class CaseManagerController {

    @Autowired

    private CoreAutoTestCase coreAutoTestCase;

    @Autowired

    private CoreAutoTestPlanCaseRelationshipMapper relationshipMapper;

.................

2赏淌、構造方法:就是在構造方法中傳入Bean對象來初始化


@Controller

public class CaseManagerController {

    private CoreAutoTestCase coreAutoTestCase;

    public CaseManagerController(CoreAutoTestCase coreAutoTestCase){

this.coreAutoTestCase = coreAutoTestCase;

}

    .................

-----------未完,待補充啄清。
原博文鏈接:http://www.54gwz.cn/article/1591175285

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末六水,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子辣卒,更是在濱河造成了極大的恐慌掷贾,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件荣茫,死亡現場離奇詭異想帅,居然都是意外死亡,警方通過查閱死者的電腦和手機啡莉,發(fā)現死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進店門港准,熙熙樓的掌柜王于貴愁眉苦臉地迎上來旨剥,“玉大人,你說我怎么就攤上這事浅缸」熘模” “怎么了?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵衩椒,是天一觀的道長阵谚。 經常有香客問我,道長烟具,這世上最難降的妖魔是什么梢什? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮朝聋,結果婚禮上嗡午,老公的妹妹穿的比我還像新娘。我一直安慰自己冀痕,他們只是感情好荔睹,可當我...
    茶點故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著言蛇,像睡著了一般僻他。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上腊尚,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天吨拗,我揣著相機與錄音,去河邊找鬼婿斥。 笑死劝篷,一個胖子當著我的面吹牛,可吹牛的內容都是我干的民宿。 我是一名探鬼主播娇妓,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼活鹰!你這毒婦竟也來了哈恰?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤志群,失蹤者是張志新(化名)和其女友劉穎着绷,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體赖舟,經...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡蓬戚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年夸楣,在試婚紗的時候發(fā)現自己被綠了宾抓。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片子漩。...
    茶點故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖石洗,靈堂內的尸體忽然破棺而出幢泼,到底是詐尸還是另有隱情,我是刑警寧澤讲衫,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布缕棵,位于F島的核電站,受9級特大地震影響涉兽,放射性物質發(fā)生泄漏招驴。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一枷畏、第九天 我趴在偏房一處隱蔽的房頂上張望别厘。 院中可真熱鬧,春花似錦拥诡、人聲如沸触趴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽冗懦。三九已至,卻和暖如春仇祭,著一層夾襖步出監(jiān)牢的瞬間披蕉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工乌奇, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留嚣艇,地道東北人。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓华弓,卻偏偏與公主長得像食零,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子寂屏,可洞房花燭夜當晚...
    茶點故事閱讀 45,585評論 2 359