国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

初識Spring框架

2023-03-30 18:51 作者:小白新手網(wǎng)絡(luò)教程  | 我要投稿

1.為何要學(xué)習(xí)Spring框架

學(xué)習(xí)框架相當(dāng)于從”小作坊“到”工廠“的升級,小作坊什么都需要自己來完成,而框架就在一定意義上實現(xiàn)了自動化,框架更加易用、簡單且高效。

2.Servlet以及Spring Boot

2.1 servlet框架步驟

①首先創(chuàng)建一個maven項目選擇webapp

②搜索servlet添加框架到pom.xml中

③添加業(yè)務(wù)代碼、實體類、控制器

④運行項目(借助tomcat)

3、Spring核心與設(shè)計思想

3.1 初識Spring

通常所說的Spring就是Spring Framework(Spring框架),用一句話概括Spring:Spring是包含了眾多工具方法的IoC容器。

3.2 什么是IoC?

IoC即 Inversion of Control 譯為中文為”控制反轉(zhuǎn)“的意思,簡單理解就是把程序的控制權(quán)反轉(zhuǎn)過來,舉一個簡單的例子:構(gòu)建車的過程,構(gòu)建一輛車,車需要依賴于車身,而車身又依賴于底盤,而底盤依賴于輪胎,如下圖所示:

上下為依賴關(guān)系

實現(xiàn)這個構(gòu)造過程需要在每個實體類里面new所依賴的類,整個程序呈現(xiàn)出層層依賴的結(jié)構(gòu),這正是問題所在,當(dāng)最底層代碼進(jìn)行改動之后,就需要對整個調(diào)用鏈的代碼進(jìn)行修改。這就是傳統(tǒng)開發(fā)中的弊端,如何解決呢?

要想解決上面的問題我們可以考慮不在每個類中自己new新的下級類,此時我們只需要將原來由自己創(chuàng)建的下級類,改為傳遞的方式(也就是注入的方式),因為我們不需要在當(dāng)前類中創(chuàng)建下級類了,所以下級類即使發(fā)生變化(創(chuàng)建或減少參數(shù)),也與當(dāng)前類無關(guān)了,這樣就完成了程序的解耦
PS:解耦指的是解決了代碼的耦合性,耦合性也可以叫做程序的相關(guān)性。好的程序的耦合性是很低的,也就是較大可能實現(xiàn)了程序的解耦。

基于以上思路,我們把調(diào)用汽車的程序改造一下,把創(chuàng)建子類的方式改為注入傳遞的方式:

并且一層一層網(wǎng)上堆疊

Spring是包含了眾多工具方法的IoC容器,既然Spring是一個IoC容器,那么我們就可以認(rèn)為,以上的這些解耦的相關(guān)操作,Spring框架可以幫助我們完成,我們可以直接用所需要的類的對象(這里的直接的前提是我們已經(jīng)將對象放入到容器中了),而不用自己創(chuàng)建。
Spring具備的兩個最基礎(chǔ)的功能:
①將對象放入到容器中
②從容器中取出對象
也就是說學(xué)Spring最核心的功能,就是學(xué)如何將對象存到Spring中,再從Spring中獲取對象的過程

3.3什么是DI

DI 即 Dependency Injection 譯為 依賴注入。

所謂依賴注入就是在IoC運行期間,自動地將某種依賴關(guān)系注入到對象中。所以DI和IoC 是從不同的角度描述的同一件事情。IoC是一種思想,而DI是具體的實現(xiàn)。

4、Spring創(chuàng)建與使用
4.1 創(chuàng)建 Spring項目
①創(chuàng)建一個普通的Maven項目
②添加Spring的框架支持(依賴)到pom.xml文件中(spring-context、spring-beans)
③添加啟動類
4.2 存儲 Bean 對象
存儲Bean對象分為以下兩步:
??????? ①存儲Bean之前,得先有Bean才行,因此要創(chuàng)建一個Bean
??????? ②將創(chuàng)建的Bean 注冊到Spring容器中,添加注冊信息到xml文件中

MR xiaobai

4.3 獲取并使用Bean對象

獲取Bean對象,分為以下三步:

①得到Spring上下文對象,因為對象都已經(jīng)注冊到Spring中交給Spring管理了,所以要獲取對象就要從Spring中獲取,那么就得先得到Spring的上下文。

//1.得到上下文分為兩種
?
第一種ApplicationContext:
?
?ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
?
第二種BeanFactory:
?
?BeanFactory beanFactory? = new XmlBeanFactory(new
ClassPathResource("spring-config.xml"));

思考:

※ApplicationContext VS BeanFactroy

①繼承關(guān)系和功能方面:ApplicationContext 是 BeanFactroy的子類,其除了繼承了BeanFactroy 訪問容器的能力外,它還具有獨特的特性,還添加了對國際化支持、資源訪問支持、以及事件傳播等方面的支持。
②性能方面:ApplicationContext 一次性加載并初始化所有的Bean對象,而? BeanFactroy 是需要哪個才去加載哪個,因此更加輕量。(BeanFactory發(fā)揮了老一輩的節(jié)儉品質(zhì))
②通過Spring上下文,獲取某一個指定的Bean對象。

//2.獲取指定的bean對象
User user = (User) context.getBean("user");

ps:getBean() 方法有很多重載方法,我們也可以使用其他方式來獲取Bean:

//根據(jù)類型獲取Bean,有局限性,若是一個Bean被注冊了兩次,此種就會報錯
?
User user = context.getBean(User.class);

// 根據(jù) 名稱+類型獲取Bean,這種比較常用
User user = context.getBean("user",User.class);

③使用Bean對象。

?? //3.使用bean對象
?? user.sayHi("張三");

總結(jié)初始Spring框架

總結(jié):

可能存在的潛在問題:在pom.xml中配置的相關(guān)依賴


這里可能出現(xiàn)紅色標(biāo)識符,表明自己的工廠沒有搭配好

這里需要修改文件的配置以及所需的依賴









初識Spring框架的評論 (共 條)

分享到微博請遵守國家法律
克拉玛依市| 台州市| 青龙| 息烽县| 封丘县| 乌拉特后旗| 隆昌县| 安平县| 石城县| 瓮安县| 靖州| 全椒县| 若尔盖县| 铜山县| 兴宁市| 刚察县| 普洱| 香港| 衡南县| 惠水县| 延川县| 赣榆县| 郧西县| 肇州县| 南城县| 舞阳县| 嘉祥县| 东莞市| 石门县| 长沙县| 临桂县| 莱芜市| 肇州县| 遂昌县| 伊春市| 闽侯县| 通海县| 绵竹市| 达日县| 灌阳县| 岳普湖县|