這20道精選SpringBoot面試題幫你在Java崗求職中如虎添翼!

前言

雖然很多文章都說微服務架構是複雜的、會帶來很多分佈式的問題,但只要我們瞭解這些問題,並找到解法,就會有種撥開雲霧的感覺。微服務架構也不是完美的,世上沒有完美的架構,微服務架構也是隨着業務、團隊成長而不斷演進的。最開始可能就幾個、十幾個微服務,每個服務是分庫的,通過 API Gateway 並行進行服務數據合併、轉發。隨着業務擴大、不斷地加入搜索引擎、緩存技術、分佈式消息隊列、數據存儲層的數據複製、分區、分表等!

SpringBoot 以其輕量級、內嵌 Web 容器、一鍵啓動、方便調試等特點被越來越多的微服務實踐者所採用。然而知其然還要知其所以然,本 Chat 就來講解 SpringBoot 核心模塊的實現原理,在面試的時候也是會被經常問到的,在這分享一些你需要了解的Springboot面試題及Springboot的學習筆記導圖(文末還有更多Java架構面試專題文檔和學習筆記以及架構視頻免費分享!)

Java崗面試問到SpringBoot還束手無策?這20道精選面試題了解一下

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 個註解:

1.@SpringBootConfiguration:組合了 @Configuration 註解,實現配置文件的功能。

2.@EnableAutoConfiguration:打開自動配置的功能,也可以關閉某個自動配置的選項,如關閉數據源自動配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。

3.@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攻擊

讀者福利(不只有Springboot資料)

對於很多初級Java工程師而言,想要提升技能,往往是自己摸索成長,不成體系的學習效果低效漫長且無助。整理的這些架構技術希望對Java開發的朋友們有所參考以及少走彎路,本文的重點是你有沒有收穫與成長,其餘的都不重要,希望讀者們能謹記這一點。同時我經過多年的收藏目前也算收集到了一套完整的學習資料以及高清詳細的Java架構進階學習導圖及筆記免費分享給大家,希望對想成爲架構師的朋友有一定的參考和幫助。

下面是部分資料截圖,誠意滿滿:特別適合有1-5年開發經驗的Java程序員們學習。

資料免費領取方式:加羣956058372立即獲取!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章