溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

2021最新版Spring Boot的面試題有哪些

發(fā)布時間:2021-10-13 14:21:21 來源:億速云 閱讀:137 作者:iii 欄目:編程語言

這篇文章主要介紹“2021最新版Spring Boot的面試題有哪些”,在日常操作中,相信很多人在2021最新版Spring Boot的面試題有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”2021最新版Spring Boot的面試題有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

1. 什么是SpringBoot?

通過Spring Boot,可以輕松地創(chuàng)建獨立的,基于生產(chǎn)級別的Spring的應用程序,您可以“運行”它們。大 多數(shù)Spring Boot應用程序需要最少的Spring配置。

2. 為什么要用SpringBoot

快速開發(fā),快速整合,配置簡化、內嵌服務容器

3. SpringBoot與SpringCloud 區(qū)別

SpringBoot是快速開發(fā)的Spring框架,SpringCloud是完整的微服務框架,SpringCloud依賴于 SpringBoot。

4. Spring Boot 有哪些優(yōu)點?

Spring Boot 主要有如下優(yōu)點:

  1. 容易上手,提升開發(fā)效率,為 Spring 開發(fā)提供一個更快、更簡單的開發(fā)框架。

  2. 開箱即用,遠離繁瑣的配置。

  3. 提供了一系列大型項目通用的非業(yè)務性功能,例如:內嵌服務器、安全管理、運行數(shù)據(jù)監(jiān) 控、運行狀況檢查和外部化配置等。

  4. SpringBoot總結就是使編碼變簡單、配置變簡單、部署變簡單、監(jiān)控變簡單等等

5. Spring Boot 的核心注解是哪個?它主要由哪幾個注解組成的?

啟動類上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要組合包含了以下 3 個注解:

  • @SpringBootConfifiguration:組合了 @Confifiguration 注解,實現(xiàn)配置文件的功能。

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

  • @ComponentScan:Spring組件掃描。

6. Spring Boot 支持哪些日志框架?推薦和默認的日志框架是哪個?

Spring Boot 支持 Java Util Logging, Log4j2, Lockback 作為日志框架,如果你使用 Starters 啟動器,Spring Boot 將使用 Logback 作為默認日志框架,但是不管是那種日志框架他都支持將配置文件輸出到控制臺或者文件中。

7. SpringBoot Starter的工作原理

  • 我個人理解SpringBoot就是由各種Starter組合起來的,我們自己也可以開發(fā)Starter

  • 在sprinBoot啟動時由@SpringBootApplication注解會自動去maven中讀取每個starter中的spring.factories文件,該文件里配置了所有需要被創(chuàng)建spring容器中的bean,并且進行自動配置把bean注入SpringContext中 //(SpringContext是Spring的配置文件)

8. Spring Boot 2.X 有什么新特性?與 1.X 有什么區(qū)別?

  • 配置變更

  • JDK 版本升級

  • 第三方類庫升級

  • 響應式 Spring 編程支持

  • HTTP/2 支持

  • 配置屬性綁定

  • 更多改進與加強

9. SpringBoot支持什么前端模板,

thymeleaf,freemarker,jsp,官方不推薦JSP會有限制

10. SpringBoot的缺點

  • 我覺得是為難人,SpringBoot在目前我覺得沒有什么缺點,非要找一個出來我覺得就是

  • 由于不用自己做的配置,報錯時很難定位。

11. 運行 Spring Boot 有哪幾種方式?


    1. 打包用命令或者放到容器中運行


    1. 用 Maven/ Gradle 插件運行


    1. 直接執(zhí)行 main 方法運行

12. Spring Boot 需要獨立的容器運行嗎?

  • 可以不需要,內置了 Tomcat/ Jetty 等容器。

13. 開啟 Spring Boot 特性有哪幾種方式?

  1. 繼承spring-boot-starter-parent項目

  2. 導入spring-boot-dependencies項目依賴

14. SpringBoot 實現(xiàn)熱部署有哪幾種方式?

2021最新版Spring Boot的面試題有哪些

15. SpringBoot事物的使用

  • SpringBoot的事物很簡單,首先使用注解EnableTransactionManagement開啟事物之后,然后在Service方法上添加注解Transactional便可。

16. Async異步調用方法

  • 在SpringBoot中使用異步調用是很簡單的,只需要在方法上使用@Async注解即可實現(xiàn)方法的異步調用。 注意:需要在啟動類加入@EnableAsync使異步調用@Async注解生效。

17. 如何在 Spring Boot 啟動的時候運行一些特定的代碼?

  • 可以實現(xiàn)接口 ApplicationRunner 或者 CommandLineRunner,這兩個接口實現(xiàn)方式一樣,它們都只提供了一個 run 方法

18. Spring Boot 有哪幾種讀取配置的方式?

  • Spring Boot 可以通過 @PropertySource,@Value,@Environment, @ConfifigurationPropertie注解來綁定變量

19. 什么是 JavaConfig?

2021最新版Spring Boot的面試題有哪些

20. SpringBoot的自動配置原理是什么

2021最新版Spring Boot的面試題有哪些

21. 你如何理解 Spring Boot 配置加載順序?

2021最新版Spring Boot的面試題有哪些

22. 什么是 YAML?

  • YAML 是一種人類可讀的數(shù)據(jù)序列化語言。它通常用于配置文件。與屬性文件相比,如果我們想要在配置文件中添加復雜的屬性,YAML 文件就更加結構化,而且更少混淆??梢钥闯?YAML 具有分層配置數(shù)據(jù)。

23. YAML 配置的優(yōu)勢在哪里 ?

2021最新版Spring Boot的面試題有哪些

24. Spring Boot 是否可以使用 XML 配置 ?

  • Spring Boot 推薦使用 Java 配置而非 XML 配置,但是 Spring Boot 中也可以使用 XML 配置,通過 @ImportResource 注解可以引入一個 XML 配置。

25. spring boot 核心配置文件是什么?bootstrap.properties 和 application.properties 有何區(qū)別 ?

2021最新版Spring Boot的面試題有哪些

26. 什么是 Spring Profiles?

2021最新版Spring Boot的面試題有哪些

27. SpringBoot多數(shù)據(jù)源拆分的思路

  • 先在properties配置文件中配置兩個數(shù)據(jù)源,創(chuàng)建分包mapper,使用@ConfifigurationProperties讀取properties中的配置,使用@MapperScan注冊到對應的mapper包中

28. SpringBoot多數(shù)據(jù)源事務如何管理

  • 第一種方式是在service層的@TransactionManager中使用transactionManager指定DataSourceConfifig中配置的事務

  • 第二種是使用jta-atomikos實現(xiàn)分布式事務管理

29. 保護 Spring Boot 應用有哪些方法?

  • 在生產(chǎn)中使用HTTPS

  • 使用Snyk檢查你的依賴關系

  • 升級到最新版本

  • 啟用CSRF保護

  • 使用內容安全策略防止XSS攻擊

30. 如何實現(xiàn) Spring Boot 應用程序的安全性?

2021最新版Spring Boot的面試題有哪些

31. 比較一下 Spring Security 和 Shiro 各自的優(yōu)缺點 ?

2021最新版Spring Boot的面試題有哪些

32. Spring Boot 中如何解決跨域問題 ?

  • 跨域可以在前端通過 JSONP 來解決,但是 JSONP 只可以發(fā)送 GET 請求,無法發(fā)送其他類型的請求,在 RESTful 風格的應用中,就顯得非常雞肋,因此我們推薦在后端通過 (CORS,Crossorigin resource sharing) 來解決跨域問題。這種解決方案并非 Spring Boot 特有的,在傳統(tǒng)的SSM 框架中,就可以通過 CORS 來解決跨域問題,只不過之前我們是在 XML 文件中配置 CORS ,現(xiàn)在可以通過實現(xiàn)WebMvcConfifigurer接口然后重寫addCorsMappings方法解決跨域問題。

@Configuration
public class CorsConfig implements WebMvcConfigurer {
	@Override
	public void addCorsMappings(CorsRegistry registry) {
		registry.addMapping("/**")
		.allowedOrigins("*")
		.allowCredentials(true)
		.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
		.maxAge(3600);
	}
}

33. Spring Boot 中的監(jiān)視器是什么?

2021最新版Spring Boot的面試題有哪些

34. 如何使用 Spring Boot 實現(xiàn)全局異常處理?

  • Spring 提供了一種使用 ControllerAdvice 處理異常的非常有用的方法。 我們通過實現(xiàn)一個ControlerAdvice 類,來處理控制器類拋出的所有異常。

35. 我們如何監(jiān)視所有 Spring Boot 微服務?

2021最新版Spring Boot的面試題有哪些

36. SpringBoot性能如何優(yōu)化

  • 如果項目比較大,類比較多,不使用@SpringBootApplication,采用@Compoment指定掃包范圍

  • 在項目啟動時設置JVM初始內存和最大內存相同

  • 將springboot內置服務器由tomcat設置為undertow

37. 如何重新加載 Spring Boot 上的更改,而無需重新啟動服務器?Spring Boot項目如何熱部署?

2021最新版Spring Boot的面試題有哪些

38. SpringBoot微服務中如何實現(xiàn) session 共享 ?

2021最新版Spring Boot的面試題有哪些

39. 您使用了哪些 starter maven 依賴項?

2021最新版Spring Boot的面試題有哪些

40. Spring Boot 中的 starter 到底是什么 ?

2021最新版Spring Boot的面試題有哪些

41. Spring Boot 中如何實現(xiàn)定時任務 ?

  • 在 Spring Boot 中使用定時任務主要有兩種不同的方式,一個就是使用 Spring 中的 @Scheduled注解,另一-個則是使用第三方框架 Quartz。

  • 使用 Spring 中的 @Scheduled 的方式主要通過 @Scheduled 注解來實現(xiàn)。

42. spring-boot-starter-parent 有什么用 ?

2021最新版Spring Boot的面試題有哪些

43. SpringBoot如何實現(xiàn)打包

  • 進入項目目錄在控制臺輸入mvn clean package,clean是清空已存在的項目包,package進行打包

  • 或者點擊左邊選項欄中的Mavne,先點擊clean在點擊package

44.Spring Boot 打成的 jar 和普通的 jar 有什么區(qū)別 ?

2021最新版Spring Boot的面試題有哪些

45. SpringBoot的特征?

  • 創(chuàng)建獨立的Spring應用程序

  • 直接嵌入Tomcat,Jetty或Undertow(無需部署WAR文件)

  • 提供固化的“starter”依賴項,以簡化構建配置

  • 盡可能自動配置Spring和3rd Party庫

  • 提供可用于生產(chǎn)的功能,例如指標,運行狀況檢查和外部化配置

  • 完全沒有代碼生成,也不需要XML配置

46.如何快速構建一個SpringBoot項目?

  • 通過Web界面使用。http://start.spring.io

  • 通過Spring Tool Suite使用。

  • 通過IntelliJ IDEA使用。

  • 使用Spring Boot CLI使用。

47.SpringBoot啟動類注解?它是由哪些注解組成?

2021最新版Spring Boot的面試題有哪些

48.什么是yaml?

  • YAML(/?j?m?l/,尾音類似camel駱駝)是一個可讀性高,用來表達數(shù)據(jù)序列化的格式。YAML參考了其他多種語言,包括:C語言、Python、Perl。更具有結構性。

49.SpringBoot支持配置文件的格式?

2021最新版Spring Boot的面試題有哪些

50.SpringBoot啟動方式?


    1. main方法


    1. 命令行 java -jar 的方式


    1. mvn/gradle

51.SpringBoot需要獨立的容器運行?

  • 不需要,內置了 Tomcat/Jetty。

52.SpringBoot配置途徑?

  1. 命令行參數(shù)

  2. java:comp/env里的JNDI屬性

  3. JVM系統(tǒng)屬性

  4. 操作系統(tǒng)環(huán)境變量

  5. 隨機生成的帶random.*前綴的屬性(在設置其他屬性時,可以引用它們,比如${random.long})

  6. 應用程序以外的application.properties或者appliaction.yml文件

  7. 打包在應用程序內的application.properties或者appliaction.yml文件

  8. 通過@PropertySource標注的屬性源

  9. 默認屬性

53.application.properties和application.yml文件可放位置?優(yōu)先級?

2021最新版Spring Boot的面試題有哪些

54.SpringBoot自動配置原理?

@EnableAutoConfifiguration (開啟自動配置) 該注解引入了AutoConfifigurationImportSelector,該類中的方法會掃描所有存在META-INF/spring.factories的jar包。

55.SpringBoot熱部署方式?

  • spring-boot-devtools

  • Spring Loaded

  • Jrebel

  • 模版熱部署

56.「bootstrap.yml」 和「application.yml」?

  • bootstrap.yml 優(yōu)先于application.yml

57.SpringBoot如何修改端口號?

2021最新版Spring Boot的面試題有哪些

58.開啟SpringBoot特性的幾種方式?

  1. 繼承spring-boot-starter-parent項目

  2. 導入spring-boot-dependencies項目依賴

59.SpringBoot如何兼容Spring項目?

在啟動類加:

@ImportResource(locations = {"classpath:spring.xml"})

60.SpringBoot配置監(jiān)控?

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

61.獲得Bean裝配報告信息訪問哪個端點?

  • /beans 端點

62.關閉應用程序訪問哪個端點?

2021最新版Spring Boot的面試題有哪些

63.查看發(fā)布應用信息訪問哪個端點?

  • /info

64.針對請求訪問的幾個組合注解?

  • @PatchMapping

  • @PostMapping

  • @GetMapping

  • @PutMapping

  • @DeleteMapping

65.SpringBoot 中的starter?

2021最新版Spring Boot的面試題有哪些

66.SpringBoot集成Mybatis?

67.什么是SpringProfiles?

mybatis-spring-boot-starter

68.不同的環(huán)境的配置文件?

2021最新版Spring Boot的面試題有哪些

69.如何激活某個環(huán)境的配置?

2021最新版Spring Boot的面試題有哪些

70.編寫測試用例的注解?

  • @SpringBootTest

71.SpringBoot異常處理相關注解?

  • @ControllerAdvice

  • @ExceptionHandler

72.SpringBoot 1.x 和 2.x區(qū)別?

  1. SpringBoot 2基于Spring5和JDK8,Spring 1x用的是低版本。

  2. 配置變更,參數(shù)名等。

  3. SpringBoot2相關的插件最低版本很多都比原來高

  4. 2.x配置中的中文可以直接讀取,不用轉碼

  5. Actuator的變化

  6. CacheManager 的變化

73.SpringBoot讀取配置相關注解有?

  • @PropertySource

  • @Value

  • @Environment

  • @ConfifigurationProperties

到此,關于“2021最新版Spring Boot的面試題有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI