技術乾貨:spring boot面試題及答案

陝西優就業發表於2020-01-10

  做Java開發,沒有人敢小覷 Spring Boot的重要性,現在出去面試,無論多小的公司 or 專案,都要跟你扯一扯 Spring Boot,扯一扯微服務,不會?沒用過?Sorry。 今天 陝西優就業 小編就給大家整理了10道Spring Boot面試題,希望能夠幫助到剛剛走出校門的小夥伴以及準備尋找新的工作機會的小夥伴。

  

推薦閱讀

【技術乾貨點選瞭解】 http://blog.itpub.net/69902581/viewspace-2672371/


  1、什麼是 Spring Boot?

  傳統的 SSM/SSH 框架組合配置繁瑣臃腫,不同專案有很多重複、模板化的配置,嚴重降低了 Java 工程師的開發效率,而 Spring Boot 可以輕鬆建立基於 Spring 的、可以獨立執行的、生產級的應用程式。透過對 Spring 家族和一些第三方庫提供一系列自動化配置的 Starter,來使得開發快速搭建一個基於 Spring 的應用程式。

  Spring Boot 讓日益臃腫的 Java 程式碼又重回簡潔。在配合 Spring Cloud 使用時,還可以發揮更大的威力。

  2、Spring Boot 中如何解決跨域問題?

  跨域可以在前端透過 JSONP 來解決,但是 JSONP 只可以傳送 GET 請求,無法傳送其他型別的請求,在 RESTful 風格的應用中,就顯得非常雞肋,因此我們推薦在後端透過(CORS,Cross-origin resource sharing) 來解決跨域問題。

  這種解決方案並非 Spring Boot 特有的,在傳統的 SSM 框架中,就可以透過 CORS 來解決跨域問題,只不過之前我們是在 XML 檔案中配置 CORS ,現在則是透過 @CrossOrigin 註解來解決跨域問題。

  3、Spring Boot 的核心配置檔案有哪幾個?它們的區別是什麼?

  Spring Boot 的核心配置檔案是 application 和 bootstrap 配置檔案。

  application 配置檔案這個容易理解,主要用於 Spring Boot 專案的自動化配置。

  bootstrap 配置檔案有以下幾個應用場景。

  ①使用 Spring Cloud Config 配置中心時,這時需要在 bootstrap 配置檔案中新增連線到配置中心的配置屬性來載入外部配置中心的配置資訊;

  ②一些固定的不能被覆蓋的屬性;

  ③一些加密/解密的場景;

  4、執行Spring Boot的方式

  ①直接執行main方法執行;

  ②用Maven / Gradle外掛執行;

  ③打成jar包,透過java -jar命令直接執行。

  5、Spring Boot自動配置的原理

  在Spring程式main方法中 新增@SpringBootApplication或者@EnableAutoConfiguration。會自動去maven中讀取每個starter中的spring.factories檔案,該檔案裡配置了所有需要被建立spring容器中的bean。

  Spring Boot 在啟動時掃描專案所依賴的JAR包,尋找包含spring.factories檔案的JAR。

  根據spring.factories配置載入AutoConfigure類。

  根據@Conditional註解的條件,進行自動配置並將Bean注入Spring Context。

  6、如何使用 Spring Boot 實現異常處理?

  Spring 提供了一種使用 ControllerAdvice 處理異常的非常有用的方法。 我們透過實現一個ControlerAdvice 類,來處理控制器類丟擲的所有異常。

  7、Spring Boot有哪些優點?

  ①減少開發,測試時間和努力。

  ②使用JavaConfig有助於避免使用XML。

  ③避免大量的Maven匯入和各種版本衝突。

  ④提供意見發展方法。

  ⑤透過提供預設值快速開始開發。

  ⑥沒有單獨的Web伺服器需要。這意味著你不再需要啟動Tomcat,Glassfish或其他任何東西。

  ⑦需要更少的配置:因為沒有web.xml檔案。只需新增用@ Configuration註釋的類,然後新增用@Bean註釋的方法,Spring將自動載入物件並像以前一樣對其進行管理。您甚至可以將@Autowired新增到bean方法中,以使Spring自動裝入需要的依賴關係中。

  ⑧基於環境的配置:使用這些屬性,您可以將您正在使用的環境傳遞到應用程式:-Dspring.profiles.active = {enviornment}。在載入主應用程式屬性檔案後,Spring將在(application{environment} .properties)中載入後續的應用程式屬性檔案。

  8、如何重新載入Spring Boot上的更改,而無需重新啟動伺服器?

  這可以使用DEV工具來實現。透過這種依賴關係,您可以節省任何更改,嵌入式tomcat將重新啟動。

  Spring Boot有一個開發工具(DevTools)模組,它有助於提高開發人員的生產力。Java開發人員面臨的一個主要挑戰是將檔案更改自動部署到伺服器並自動重啟伺服器。

  開發人員可以重新載入Spring Boot上的更改,而無需重新啟動伺服器。這將消除每次手動部署更改的需要。Spring Boot在釋出它的第一個版本時沒有這個功能。

  這是開發人員最需要的功能。DevTools模組完全滿足開發人員的需求。該模組將在生產環境中被禁用。它還提供H2資料庫控制檯以更好地測試應用程式。

  9、Spring Boot中的監視器是什麼?

  Spring boot actuator是spring啟動框架中的重要功能之一。Spring boot監視器可幫助您訪問生產環境中正在執行的應用程式的當前狀態。

  有幾個指標必須在生產環境中進行檢查和監控。即使一些外部應用程式可能正在使用這些服務來向相關人員觸發警報訊息。監視器模組公開了一組可直接作為HTTP URL訪問的REST端點來檢查狀態。

  10、如何實現Spring Boot應用程式的安全性?

  為了實現Spring Boot的安全性,我們使用 spring-boot-starter-security依賴項,並且必須新增安全配置。它只需要很少的程式碼。配置類將必須擴充套件WebSecurityConfigurerAdapter並覆蓋其方法。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69902581/viewspace-2672834/,如需轉載,請註明出處,否則將追究法律責任。

相關文章