Spring Boot 是一套快速開發框架,隨着微服務架構應用不斷普及,Spring Boot 的研發技術的掌握已經成爲研發人員必會技能。與此同時,Spring Boot 開源生態建設能力很是強大,提供了不少應用組件,讓Spring Boot 有豐富的三方開源軟件的使用。java
基於上面的狀況,Spring Boot 基本上成爲了大中型互聯網公司面試的必考題。面試
本篇小編根據大廠的一些面試題庫的梳理,將核心的面試提供分享給你們spring
一、什麼是 Spring Boot?Spring Boot 是 Spring 開源組織下的子項目,是 Spring 組件一站式解決方案,主要是簡化了使用 Spring 的難度,簡省了繁重的配置,提供了各類啓動器,開發者能快速上手。後端
二、Spring Boot 主要有以下優勢:容易上手,提高開發效率,爲 Spring 開發提供一個更快、更普遍的入門體驗。 開箱即用,遠離繁瑣的配置。 提供了一系列大型項目通用的非業務性功能,例如:內嵌服務器、安全管理、運行數據監控、運行情況檢查和外部化配置等。 沒有代碼生成,也不須要XML配置。 避免大量的 Maven 導入和各類版本衝突。安全
三、Spring Boot 的核心註解是哪一個?它主要由哪幾個註解組成的?啓動類上面的註解是@SpringBootApplication,它也是 Spring Boot 的核心註解,主要組合包含了如下 3 個註解:服務器
啓動類上面的註解是@SpringBootApplication,它也是 Spring Boot 的核心註解,主要組合包含了如下 3 個註解:session
@SpringBootConfiguration:組合了 @Configuration 註解,實現配置文件的功能。架構
@EnableAutoConfiguration:打開自動配置的功能,也能夠關閉某個自動配置的選項,如關閉數據源自動配置功能:@SpringBootApplication(exclude{DataSourceAutoConfiguration.class})app
@ComponentScan:Spring組件掃描,因爲篇幅的問題,下面的面試題小編已經整理成文檔和學習筆記,關注公衆號:麒麟改bug,方便你們更容易直觀的查看解析,和技術的學習。框架
四、什麼是 JavaConfig?五、Spring Boot 自動配置原理是什麼?六、你如何理解 Spring Boot 配置加載順序?七、什麼是 YAML?八、Spring Boot 是否可使用 XML 配置 ?九、spring boot 核心配置文件是什麼?十、什麼是 Spring Profiles?十一、如何在自定義端口上運行 Spring Boot 應用程序?十二、如何實現 Spring Boot 應用程序的安全性?1三、比較一下 Spring Security 和 Shiro 各自的優缺點 ?1四、什麼是 CSRF ***?1五、Spring Boot 中的監視器是什麼?1六、如何在 Spring Boot 中禁用 Actuator 端點安全性?1七、咱們如何監視全部 Spring Boot 微服務?1八、什麼是 WebSockets?1九、什麼是 Spring Data ?20、什麼是 Spring Batch?2一、什麼是 FreeMarker 模板?2二、如何集成 Spring Boot 和 ActiveMQ?2三、什麼是 Swagger?2四、你用 Spring Boot 實現了它嗎?2五、什麼是 Apache Kafka?2六、先後端分離,如何維護接口文檔 ?2七、如何從新加載 Spring Boot 上的更改,而無需從新啓動服務器?2八、Spring Boot項目如何熱部署?2九、您使用了哪些 starter maven 依賴項?30、spring-boot-starter-parent 有什麼用 ?咱們都知道,新建立一個 Spring Boot 項目,默認都是有 parent 的,這個 parent 就是 spring-boot-starter-parent ,spring-boot-starter-parent 主要有以下做用:
Spring Boot 項目最終打包成的 jar 是可執行 jar ,這種 jar 能夠直接經過 java -jar xxx.jar 命令來運行,這種 jar 不能夠做爲普通的 jar 被其餘項目依賴,即便依賴了也沒法使用其中的類。
Spring Boot 的 jar 沒法被其餘項目依賴,主要仍是他和普通 jar 的結構不一樣。普通的 jar 包,解壓後直接就是包名,包裏就是咱們的代碼,而 Spring Boot 打包成的可執行 jar 解壓後,在 \BOOT-INF\classes 目錄下才是咱們的代碼,所以沒法被直接引用。若是非要引用,能夠在 pom.xml 文件中增長配置,將 Spring Boot 項目打包成兩個 jar ,一個可執行,一個可引用。
3二、運行 Spring Boot 有哪幾種方式?1)打包用命令或者放到容器中運行
2)用 Maven/ Gradle 插件運行
3)直接執行 main 方法運行
3三、如何使用SpringBoot實現分頁和排序?使用 Spring Boot 實現分頁很是簡單。使用 Spring Data-JPA 能夠實現將可分頁的傳遞給存儲庫方法。
微服務中如何實現 session 共享 ?
在微服務中,一個完整的項目被拆分紅多個不相同的獨立的服務,各個服務獨立部署在不一樣的服務器上,各自的 session 被從物理空間上隔離開了,可是常常,咱們須要在不一樣微服務之間共享 session ,常見的方案就是 Spring Session + Redis 來實現 session 共享。將全部微服務的 session 統一保存在 Redis 上,當各個微服務對 session 有相關的讀寫操做時,都去操做 Redis 上的 session 。這樣就實現了 session 共享,Spring Session 基於 Spring 中的代理過濾器實現,使得 session 的同步操做對開發人員而言是透明的,很是簡便。
Spring Boot 中如何實現定時任務 ?
定時任務也是一個常見的需求,Spring Boot 中對於定時任務的支持主要仍是來自 Spring 框架。
在 Spring Boot 中使用定時任務主要有兩種不一樣的方式,一個就是使用 Spring 中的 @Scheduled 註解,另外一個則是使用第三方框架 Quartz。
使用 Spring 中的 @Scheduled 的方式主要經過 @Scheduled 註解來實現。
使用 Quartz ,則按照 Quartz 的方式,定義 Job 和 Trigger 便可。
總結Spring Boot 是一套快速開發框架,隨着微服務架構應用不斷普及,Spring Boot 的研發技術的掌握已經成爲研發人員必會技能。因爲篇幅的問題,上面的面試題小編已經整理成文檔和學習筆記,關注公衆號:麒麟改bug,方便你們更容易直觀的查看解析,和技術的學習。
文章到這裏就結束了!