javascript
Spring原理简述
一、什么是Spring容器?
Spring容器,也稱Spring Ioc容器或bean容器,是Spring框架的核心,Srping容器對很多人來說是比較抽象難以理解的;
1、從概念層面講,對象的創建、初始化以及銷毀的整個生命周期都交由Spring容器去管理,大大減少了開發的工作量;
2、從代碼層面講,一個Spring容器就是一個實現了ApplicationContext接口的類的一個實例,即一個Spring容器就是一個AlicaitonContext(對象)
如上圖,context就是創建的一個Spring容器,容器里裝載著applicationContext.xml文件中配置的所有對象。
二、Spring容器是如何管理對象的
首先先介紹一下兩個概念:IOC(控制反轉)、DI(依賴注冊)。
IOC:將對象的創建、初始化和銷毀的整個生命周期都交給容器去做,而不是再有程序員自己去new了,所以稱之為控制反轉,這個概念顧名思義很好理解,這也與上面介紹Spring容器的概念呼應。
DI:Spring在啟動的時候會實例化所需要的類,這里以實例化A類為例,若存在A類依賴于B類的情況,在實例化A對象的過程中會首先實例化B類,再實例化A類,依賴傳入A類的方式必須是通過A類的構造函數,因此A類在實例化的過程中會接收并保存依賴的對象。
三、SpringBoot中創建bean的幾種方式
不同于Spring框架中bean的配置都是在xml中進行的,比較繁瑣,springboot中主要采用注解的方式實現bean的創建
1、注解形式:@Component、@Service、@Repository、@Controller
Spring運行時,容器會自動掃描加載被這些注解修飾的類,自動生成bean,并保存到Spring容器中
2、@Bean形式:配合@Configuration注解創建bean
@Configuration public class BeanLoadConfig {@Beanpublic 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的創建過程,下面就將如何在項目中使用bean。
1、使用@AutoWired和@Resource注解實現自動裝配,如下圖所示:
被@Controller修飾的CaseManagerController類在實例化為bean對象的過程中需要先對依賴CoreAutoTestCase類進行實例化,CoreAutoTestCase類實例化生成bean后,通過@Autowired或@Resource注解,裝配注入到當前的bean對象中,也就是說CaseManagerController類實例化bean對象中保存有CoreAutoTestCase類的實例化bean對象信息。因為在被@controller修飾的類中幾乎是不存在構造函數的,我們上一章節講到依賴只能通過構造函數注入到當前的bean中,因此@AutoWired和@Resource注解也相當于起到了一個這樣的一個構造函數的作用,下面我們就要將通過構造函數的方式使用bean對象了。
2、構造方法:就是在構造方法中傳入Bean對象來初始化
@Controller public class CaseManagerController {private CoreAutoTestCase coreAutoTestCase;public CaseManagerController(CoreAutoTestCase coreAutoTestCase){this.coreAutoTestCase = coreAutoTestCase;}.................原博文鏈接:http://www.54gwz.cn/article/1591175285
-----------未完,待補充。
總結
以上是生活随笔為你收集整理的Spring原理简述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux服务器tomcat部署war包
- 下一篇: Springboot使用bean方式详解