1、什麼是 Spring Boot?
Spring Boot 是 Spring 開源組織下的子專案,是 Spring 元件一站式解決方案,主要是簡化了使用 Spring 的難度,簡省了繁重的配置,提供了各種啟動器,開發者能快速上手。
2、Spring Boot有哪些優點?
減少開發,測試時間和努力。
使用JavaConfig有助於避免使用XML。
避免大量的Maven匯入和各種版本衝突。
提供意見發展方法。
通過提供預設值快速開始開發。
沒有單獨的Web伺服器需要。這意味著你不再需要啟動Tomcat,Glassfish或其他任何東西。
需要更少的配置 因為沒有web.xml檔案。只需新增用@ Configuration註釋的類,然後新增用@Bean註釋的方法,Spring將自動載入物件並像以前一樣對其進行管理。您甚至可以將@Autowired新增到bean方法中,以使Spring自動裝入需要的依賴關係中。基於環境的配置 使用這些屬性,您可以將您正在使用的環境傳遞到應用程式:-Dspring.profiles.active = {enviornment}。在載入主應用程式屬性檔案後,Spring將在(application{environment} .properties)中載入後續的應用程式屬性檔案。
3、Spring Boot 的核心配置檔案有哪幾個?它們的區別是什麼?
Spring Boot 的核心配置檔案是 application 和 bootstrap 配置檔案。
application 配置檔案這個容易理解,主要用於 Spring Boot 專案的自動化配置。
bootstrap 配置檔案有以下幾個應用場景。
使用 Spring Cloud Config 配置中心時,這時需要在 bootstrap 配置檔案中新增連線到配置中心的配置屬性來載入外部配置中心的配置資訊; 一些固定的不能被覆蓋的屬性;一些加密/解密的場景
4、Spring Boot 的配置檔案有哪幾種格式?它們有什麼區別?
.properties 和 .yml,它們的區別主要是書寫格式不同。
1 , properties
app.user.name = javastack
複製程式碼
2, yml
app:
user:
name: javastack
複製程式碼
5、Spring Boot 的核心註解是哪個?它主要由哪幾個註解組成的?
啟動類上面的註解是@SpringBootApplication,它也是 Spring Boot 的核心註解 主要組合包含了以下 3 個註解:
@SpringBootConfiguration:組合了 @Configuration 註解,實現配置檔案的功能。
@EnableAutoConfiguration:開啟自動配置的功能,也可以關閉某個自動配置的選項,如關閉資料來源自動配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。
@ComponentScan:Spring元件掃描。
6、開啟 Spring Boot 特性有哪幾種方式?
1)繼承spring-boot-starter-parent專案
2)匯入spring-boot-dependencies專案依賴
7、Spring Boot 需要獨立的容器執行嗎?
可以不需要,內建了 Tomcat/ Jetty 等容器。
8、執行 Spring Boot 有哪幾種方式?
1)打包用命令或者放到容器中執行
2)用 Maven/ Gradle 外掛執行
3)直接執行 main 方法執行
9、Spring Boot 自動配置原理是什麼?
註解 @EnableAutoConfiguration, @Configuration, @ConditionalOnClass 就是自動配置的核心,首先它得是一個配置檔案,其次根據類路徑下是否有這個類去自動配置。
10、Spring Boot 2.X 有什麼新特性?與 1.X 有什麼區別?
配置變更
JDK 版本升級
第三方類庫升級
響應式 Spring 程式設計支援
HTTP/2 支援
配置屬性繫結
更多改進與加強…
11 , 如何使用Spring Boot實現分頁和排序?
使用Spring Boot實現分頁非常簡單。使用Spring Data-JPA可以實現將可分頁的org.springframework.data.domain.Pageable傳遞給儲存庫方法。
12,如何實現Spring Boot應用程式的安全性?
為了實現Spring Boot的安全性,我們使用 spring-boot-starter-security依賴項,並且必須新增安全配置。它只需要很少的程式碼。配置類將必須擴充套件WebSecurityConfigurerAdapter並覆蓋其方法。
13,如何整合Spring Boot和ActiveMQ?
對於整合Spring Boot和ActiveMQ,我們使用spring-boot-starter-activemq 依賴關係。 它只需要很少的配置,並且不需要樣板程式碼。
14、什麼是YAML?
YAML是一種人類可讀的資料序列化語言。它通常用於配置檔案。 與屬性檔案相比,如果我們想要在配置檔案中新增複雜的屬性,YAML檔案就更加結構化,而且更少混淆。可以看出YAML具有分層配置資料。
15,Spring Boot中的監視器是什麼?
Spring boot actuator是spring啟動框架中的重要功能之一。Spring boot監視器可幫助您訪問生產環境中正在執行的應用程式的當前狀態。有幾個指標必須在生產環境中進行檢查和監控。即使一些外部應用程式可能正在使用這些服務來向相關人員觸發警報訊息。監視器模組公開了一組可直接作為HTTP URL訪問的REST端點來檢查狀態。
16 ,什麼是Swagger?你用Spring Boot實現了它嗎?
Swagger廣泛用於視覺化API,使用Swagger UI為前端開發人員提供線上沙箱。Swagger是用於生成RESTful Web服務的視覺化表示的工具,規範和完整框架實現。它使文件能夠以與伺服器相同的速度更新。當通過Swagger正確定義時,消費者可以使用最少量的實現邏輯來理解遠端服務並與其進行互動。因此,Swagger消除了呼叫服務時的猜測。
17,如何使用Spring Boot實現異常處理?
Spring提供了一種使用ControllerAdvice處理異常的非常有用的方法。 我們通過實現一個ControlerAdvice類,來處理控制器類丟擲的所有異常。
18,RequestMapping 和 GetMapping 的不同之處在哪裡?
RequestMapping 具有類屬性的,可以進行 GET,POST,PUT 或者其它的註釋中具有的請求方法。
GetMapping 是 GET 請求方法中的一個特例。它只是 ResquestMapping 的一個延伸,目的是為了提高清晰度。
19、Spring Boot 可以相容老 Spring 專案嗎,如何做?
可以相容,使用 @ImportResource 註解匯入老 Spring 專案配置檔案。
20、保護 Spring Boot 應用有哪些方法?
在生產中使用HTTPS 使用Snyk檢查你的依賴關係 升級到最新版本 啟用CSRF保護 使用內容安全策略防止XSS攻擊