1. 對(duì)Spring Boot的理解
SpringBoot主要用來簡(jiǎn)化使用Spring的難度和繁重的XML配置,它是Spring組件的一站式解決方案,采取了習(xí)慣優(yōu)于配置的方法。通過.properties或者.yml文件替代了Spring繁雜的XML配置文件,同時(shí)支持@ImportResource注解加載XML配置。Spring Boot還提供了嵌入式HTTP服務(wù)器、命令行接口工具、多種插件等等,使得應(yīng)用程序的測(cè)試和開發(fā)簡(jiǎn)單起來。
- 可以快速構(gòu)建項(xiàng)目;
- 可以對(duì)主流開發(fā)框架的無配置集成;
- 項(xiàng)目可獨(dú)立運(yùn)行,無需外部依賴Servlet容器;
- 提供運(yùn)行時(shí)的應(yīng)用監(jiān)控;
- 可以極大地提高開發(fā)、部署效率;
- 可以與云計(jì)算天然集成。
2. Spring Boot Starter作用
Spring Boot通過提供眾多起步依賴(Starter)降低項(xiàng)目依賴的復(fù)雜度。起步依賴本質(zhì)上是一個(gè)Maven項(xiàng)目對(duì)象模型(Project Object Model, POM),定義了對(duì)其他庫(kù)的傳遞依賴,這些東西加在一起即支持某項(xiàng)功能。很多起步依賴的命名都暗示了它們提供的某種或某類功能。
舉例來說,你打算把這個(gè)閱讀列表應(yīng)用程序做成一個(gè)Web應(yīng)用程序。與其向項(xiàng)目的構(gòu)建文件里添加一堆單獨(dú)的庫(kù)依賴,還不如聲明這是一個(gè)Web應(yīng)用程序來得簡(jiǎn)單。你只要添加Spring Boot的Web起步依賴就好了。
3. Spring Boot的啟動(dòng)流程
首先,Spring Boot項(xiàng)目創(chuàng)建完成會(huì)默認(rèn)生成一個(gè)名為 *application 的入口類,我們是通過該類的main方法啟動(dòng)Spring Boot項(xiàng)目的。在main方法中,通過Springapplication的靜態(tài)方法,即run方法進(jìn)行Springapplication類的實(shí)例化操作,然后再針對(duì)實(shí)例化對(duì)象調(diào)用另外一個(gè)run方法來完成整個(gè)項(xiàng)目的初始化和啟動(dòng)。Springapplication調(diào)用的run方法的大致流程:
- 獲取SpringapplicationListener監(jiān)聽器;
- 啟動(dòng)所獲取到的所有監(jiān)聽器;
- 初始化ConfigurableEnvironment(配置文件);
- 打印Banner圖標(biāo);
- 創(chuàng)建容器ConfigurableapplicationContext;
- 準(zhǔn)備容器ConfigurableapplicationContext;
- 初始化容器ConfigurableapplicationContext;
- 監(jiān)聽器通知容器啟動(dòng)完成;
- 監(jiān)聽器通知容器正在運(yùn)行;
除了上述核心操作,run方法運(yùn)行過程中還涉及啟動(dòng)時(shí)長(zhǎng)統(tǒng)計(jì)、異常報(bào)告、啟動(dòng)日志、異常處理等輔助操作。
4. 描述Spring Boot自動(dòng)裝配的過程
@EnableAutoConfiguration注解、 @Configuration注解和 @ConditionalOnClass注解組成了Spring Boot自動(dòng)配置的核心,首先它得是一個(gè)配置文件,其次根據(jù)類路徑下是否有這個(gè)類去自動(dòng)配置。具體是通過maven讀取每個(gè)starter中的spring.factories文件,該文件配置了所有需要被創(chuàng)建在spring容器中的bean。
5. 對(duì)Spring Boot注解的了解
- @SpringBootapplication注解:
在Spring Boot入口類中,唯一的一個(gè)注解就是@SpringBootapplication。它是Spring Boot項(xiàng)目的核心注解,用于開啟自動(dòng)配置,準(zhǔn)確說是通過該注解內(nèi)組合的@EnableAutoConfiguration開啟了自動(dòng)配置。
- @EnableAutoConfiguration注解:
允許 Spring Boot 自動(dòng)配置注解,開啟這個(gè)注解之后,Spring Boot 就能根據(jù)當(dāng)前類路徑下的包或者類來配置 Spring Bean。
- @Conditional注解:
@Conditional注解是由Spring 4.0版本引入的新特性,可根據(jù)是否滿足指定的條件來決定是否進(jìn)行Bean的實(shí)例化及裝配。
6. Spring、SpringMVC和Springboot的區(qū)別
- Spring
Spring最重要的特征是依賴注入。所有 SpringModules 不是依賴注入就是 IOC 控制反轉(zhuǎn)。
當(dāng)我們恰當(dāng)?shù)氖褂?DI 或者是 IOC 的時(shí)候,我們可以開發(fā)松耦合應(yīng)用。松耦合應(yīng)用的單元測(cè) 試可以很容易的進(jìn)行。 - Spring MVC
Spring MVC 提供了一種分離式的方法來開發(fā) Web 應(yīng)用。通過運(yùn)用像 DispatcherServelet, MoudlAndView 和 ViewResolver 等一些簡(jiǎn)單的概念,開發(fā) Web 應(yīng)用將會(huì)變的非常簡(jiǎn)單。 - SpringBoot
Spring 和 SpringMVC 的問題在于需要配置大量的參數(shù)。
7. 關(guān)于SpringBoot配置的一些問題
- Spring Boot 的核心配置文件有哪幾個(gè)?它們的區(qū)別是什么?
Spring Boot 的核心配置文件是 application 和 bootstrap 配置文件。
application 配置文件主要用于 Spring Boot 項(xiàng)目的自動(dòng)化配置。 bootstrap 配置文件有三個(gè)應(yīng)用場(chǎng)景。 使用Spring Cloud Config配置中心時(shí),需要在 bootstrap 配置文件中添加連接到配置中心的配置屬性,來加載外部配置中心的配置信息; 一些固定的不能被覆蓋的屬性; 一些加密或解密的場(chǎng)景。
2. Spring Boot 的配置文件有哪幾種格式?它們有什么區(qū)別?
主要有.properties 和 .yml格式,它們的區(qū)別主要是書寫格式不同。另外,.yml 格式不支持 @PropertySource 注解導(dǎo)入配置。
3. 如何理解 Spring Boot 配置加載順序
Spring Boot配置加載順序優(yōu)先級(jí)是:propertiese文件、YAML文件、系統(tǒng)環(huán)境變量、命令行參數(shù)。
4. 什么是YAML,有什么優(yōu)點(diǎn)。
YAML 是一種可讀的數(shù)據(jù)序列化語言,它通常用于配置文件。
優(yōu)點(diǎn):
配置有序
支持?jǐn)?shù)組,數(shù)組中的元素可以是基本數(shù)據(jù)類型或者對(duì)象
簡(jiǎn)潔方便
5. Spring Boot 是否可以使用 XML 配置 , Spring Boot 可以兼容老 Spring 項(xiàng)目嗎
Spring Boot 推薦使用 Java 配置同時(shí)支持 XML 配置,通過 @ImportResource 注解加載 XML 配置;
可以兼容,使用 @ImportResource 注解導(dǎo)入老 Spring 項(xiàng)目配置文件。
6. application.properties和bootstrap.properties有何區(qū)別
bootstrap比 applicaton 優(yōu)先加載,配置在應(yīng)用程序上下文的引導(dǎo)階段生效, 而且boostrap 里面的屬性不能被覆蓋; application用于 spring boot 項(xiàng)目的自動(dòng)化配置。
-
控制器
+關(guān)注
關(guān)注
112文章
16448瀏覽量
179472 -
嵌入式系統(tǒng)
+關(guān)注
關(guān)注
41文章
3625瀏覽量
129758 -
MVC
+關(guān)注
關(guān)注
0文章
73瀏覽量
13903 -
YAML
+關(guān)注
關(guān)注
0文章
21瀏覽量
2343 -
XML加密
+關(guān)注
關(guān)注
0文章
3瀏覽量
998
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論