日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

Spring原理简述

發(fā)布時(shí)間:2025/4/17 javascript 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring原理简述 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、什么是Spring容器?
Spring容器,也稱Spring Ioc容器或bean容器,是Spring框架的核心,Srping容器對(duì)很多人來說是比較抽象難以理解的;

1、從概念層面講,對(duì)象的創(chuàng)建、初始化以及銷毀的整個(gè)生命周期都交由Spring容器去管理,大大減少了開發(fā)的工作量;
2、從代碼層面講,一個(gè)Spring容器就是一個(gè)實(shí)現(xiàn)了ApplicationContext接口的類的一個(gè)實(shí)例,即一個(gè)Spring容器就是一個(gè)AlicaitonContext(對(duì)象)

ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); Cat democat = context.getBean("cat",Cat.class);

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

二、Spring容器是如何管理對(duì)象的

首先先介紹一下兩個(gè)概念:IOC(控制反轉(zhuǎn))、DI(依賴注冊(cè))。
IOC:將對(duì)象的創(chuàng)建、初始化和銷毀的整個(gè)生命周期都交給容器去做,而不是再有程序員自己去new了,所以稱之為控制反轉(zhuǎn),這個(gè)概念顧名思義很好理解,這也與上面介紹Spring容器的概念呼應(yīng)。
DI:Spring在啟動(dòng)的時(shí)候會(huì)實(shí)例化所需要的類,這里以實(shí)例化A類為例,若存在A類依賴于B類的情況,在實(shí)例化A對(duì)象的過程中會(huì)首先實(shí)例化B類,再實(shí)例化A類,依賴傳入A類的方式必須是通過A類的構(gòu)造函數(shù),因此A類在實(shí)例化的過程中會(huì)接收并保存依賴的對(duì)象。

//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中進(jìn)行的,比較繁瑣,springboot中主要采用注解的方式實(shí)現(xiàn)bean的創(chuàng)建
1、注解形式:@Component、@Service、@Repository、@Controller
Spring運(yùn)行時(shí),容器會(huì)自動(dòng)掃描加載被這些注解修飾的類,自動(dòng)生成bean,并保存到Spring容器中

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

@Configuration public class BeanLoadConfig {@Beanpublic ConfigDemoBean configDemoBean() {return new ConfigDemoBean();} }

@Configuration相當(dāng)于xml文件中的beans標(biāo)簽,@Bean相當(dāng)于bean標(biāo)簽,方法名相當(dāng)于bean標(biāo)簽中的id,方法的返回值注入到sprig容器中,相當(dāng)于class的一個(gè)實(shí)例。
具體可參考該博文,簡(jiǎn)單易懂:https://blog.csdn.net/luzhensmart/article/details/90666380

四、Springboot中bean的使用方式

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

1、使用@AutoWired和@Resource注解實(shí)現(xiàn)自動(dòng)裝配,如下圖所示:
被@Controller修飾的CaseManagerController類在實(shí)例化為bean對(duì)象的過程中需要先對(duì)依賴CoreAutoTestCase類進(jìn)行實(shí)例化,CoreAutoTestCase類實(shí)例化生成bean后,通過@Autowired或@Resource注解,裝配注入到當(dāng)前的bean對(duì)象中,也就是說CaseManagerController類實(shí)例化bean對(duì)象中保存有CoreAutoTestCase類的實(shí)例化bean對(duì)象信息。因?yàn)樵诒?#64;controller修飾的類中幾乎是不存在構(gòu)造函數(shù)的,我們上一章節(jié)講到依賴只能通過構(gòu)造函數(shù)注入到當(dāng)前的bean中,因此@AutoWired和@Resource注解也相當(dāng)于起到了一個(gè)這樣的一個(gè)構(gòu)造函數(shù)的作用,下面我們就要將通過構(gòu)造函數(shù)的方式使用bean對(duì)象了。

@Controller public class CaseManagerController {@Autowiredprivate CoreAutoTestCase coreAutoTestCase;@Autowiredprivate CoreAutoTestPlanCaseRelationshipMapper relationshipMapper;.................

2、構(gòu)造方法:就是在構(gòu)造方法中傳入Bean對(duì)象來初始化

@Controller public class CaseManagerController {private CoreAutoTestCase coreAutoTestCase;public CaseManagerController(CoreAutoTestCase coreAutoTestCase){this.coreAutoTestCase = coreAutoTestCase;}.................

原博文鏈接:http://www.54gwz.cn/article/1591175285
-----------未完,待補(bǔ)充。

總結(jié)

以上是生活随笔為你收集整理的Spring原理简述的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。