談談怎么理解 SpringBoot 框架
Spring Boot 是 Spring 開源組織下的子項目, 是 Spring 組件一站式解決方案, 主要是 簡化了使用 Spring 的難度, 簡省了繁重的配置, 提供了各種啟動器, 開發(fā)者能快速上手 。
Spring Boot 的優(yōu)點
● 獨立運行
Spring Boot 而且內(nèi)嵌了各種 servlet 容器, Tomcat 、Jetty 等, 現(xiàn)在不再需要打成 war 包部署到容器中, Spring Boot 只要打成一個可執(zhí)行的 jar 包就能獨立運行, 所有的依 賴包都在一個 jar 包內(nèi)。
● 簡化配置
spring-boot-starter-web 啟動器自動依賴其他組件, 簡少了 maven 的配置 。除此之 外, 還提供了各種啟動器, 開發(fā)者能快速上手。
● 自動配置
Spring Boot 能根據(jù)當前類路徑下的類 、jar 包來自動配置 bean, 如添加一個 spring- boot-starter-web 啟動器就能擁有 web 的功能, 無需其他配置 。
● 無代碼生成和 XML 配置
Spring Boot 配置過程中無代碼生成, 也無需 XML 配置文件就能完成所有配置工作, 這一切都是借助于條件注解完成的, 這也是 Spring4.x 的核心功能之一 。
● 應用監(jiān)控
Spring Boot 提供一系列端點可以監(jiān)控服務及應用, 做健康檢測 。
Spring Boot 缺點:
Spring Boot 雖然上手很容易, 但如果你不了解其核心技術(shù)及流程, 所以一旦遇到問題 就很棘手, 而且現(xiàn)在的解決方案也不是很多, 需要一個完善的過程。
Spring Boot 的核心注解是哪個 它主要由哪幾個注解組成的
啟動類上面的注解是@SpringBootApplication, 它也是 Spring Boot 的核心注解, 主要 組合包含了以下 3 個注解:
● @SpringBootConfiguration: 組合了 @Configuration 注解, 實現(xiàn)配置文件的功 能 。
● @EnableAutoConfiguration: 打開自動配置的功能, 也可以關(guān)閉某個自動配置 的選項,
● 如關(guān)閉數(shù)據(jù)源自動配置功能: @SpringBootApplication(exclude =
{ DataSourceAutoConfiguration.class })。
● @ComponentScan: Spring 組件掃描 。
Spring Boot 自動配置原理是什么
注解 @EnableAutoConfiguration, @Configuration, @ConditionalOnClass 就是自動配置的核心。
首先它得是一個配置文件, 其次根據(jù)類路徑下是否有這個類去自動配置 。
@EnableAutoConfiguration 是實現(xiàn)自動配置的注解;
@Configuration 表示這是一個配置文件;
SpringBoot 配置文件有哪些 怎么實現(xiàn)多環(huán)境配置
Spring Boot 的核心配置文件是 application 和 bootstrap 配置文件 。 application 配置文件這個容易理解, 主要用于 Spring Boot 項目的自動化配置。
bootstrap 配置文件的特性:
● bootstrap 由父 ApplicationContext 加載, 比 applicaton 優(yōu)先加載
● bootstrap 里面的屬性不能被覆蓋
bootstrap 配置文件有以下幾個應用場景:
● 使用 Spring Cloud Config 配置中心時, 這時需要在 bootstrap 配置文件中添加 連接到配置中心的配置屬性來加載外部配置中心的配置信息;
● 一些固定的不能被覆蓋的屬性;
● 一些加密/解密的場景;
提供多套配置文件, 如:
applcation.properties
application-dev.properties
application-test.properties
application-prod.properties
運行時指定具體的配置文件 。
SpringBoot 和 SpringCloud 是什么關(guān)系
Spring Boot 是 Spring 的一套快速配置腳手架, 可以基于 Spring Boot 快速開發(fā)單個 微服務, Spring Cloud 是一個基于 Spring Boot 實現(xiàn)的開發(fā)工具; Spring Boot 專注于 快速 、方便集成的單個微服務個體, Spring Cloud 關(guān)注全局的服務治理框架; Spring Boot 使用了默認大于配置的理念, 很多集成方案已經(jīng)幫你選擇好了, 能不配置就不配 置, Spring Cloud 很大的一部分是基于 Spring Boot 來實現(xiàn), 必須基于 Spring Boot 開 發(fā) 。
可以單獨使用 Spring Boot 開發(fā)項目, 但是 Spring Cloud 離不開 Spring Boot。