2020最新總結,大廠常問的SpringBoot高頻面試題(30題+答案+學習導圖)

前言 

今天跟你們分享下SpringBoot 常見高頻面試題的知識。java

下面是小編關於SpringBoot的知識點總結了一個思惟導圖,但願對你們全部幫助!程序員

話很少說,下面咱們開始正題:

1. 什麼是SpringBoot?

經過Spring Boot,能夠輕鬆地建立獨立的,基於生產級別的Spring的應用程序,您能夠「運行」它們。大多數Spring Boot應用程序須要最少的Spring配置。面試

2. SpringBoot的特徵?

  • 建立獨立的Spring應用程序spring

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

  • 提供固化的「starter」依賴項,以簡化構建配置mybatis

  • 儘量自動配置Spring和3rd Party庫app

  • 提供可用於生產的功能,例如指標,運行情況檢查和外部化配置dom

  • 徹底沒有代碼生成,也不須要XML配置spring-boot

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

  • 經過Web界面使用。http://start.spring.io測試

  • 經過Spring Tool Suite使用。

  • 經過IntelliJ IDEA使用。

  • 使用Spring Boot CLI使用。

4. SpringBoot啓動類註解?它是由哪些註解組成?

@SpringBootApplication

  • @SpringBootConfifiguration:組合了 @Confifiguration 註解,實現配置文件的功能。

  • @EnableAutoConfifiguration:打開自動配置的功能,也能夠關閉某個自動配置的選項。

  • @SpringBootApplication(exclude = { DataSourceAutoConfifiguration.class })

  • @ComponentScan:Spring組件掃描

5. 什麼是yaml?

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

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

1.properties

java.xiaokaxiu.name = xiaoka 

2.yml

java: xiaokaxiu: name: xiaoka

7. SpringBoot啓動方式?

1. main方法

2. 命令行 java -jar 的方式

3. mvn/gradle

8. SpringBoot須要獨立的容器運行?

不須要,內置了 Tomcat/Jetty。

9. SpringBoot配置途徑?

1. 命令行參數

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

3. JVM系統屬性

4. 操做系統環境變量

5. 隨機生成的帶random.*前綴的屬性(在設置其餘屬性時,能夠引用它們,好比${random.

long})

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

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

8. 經過@PropertySource標註的屬性源

9. 默認屬性

tips:這個列表按照優先級排序,也就是說,任何在高優先級屬性源裏設置的屬性都會覆蓋低優先級的相

同屬性。

10. application.properties和application.yml文件可放位置?優先級?

1. 外置,在相對於應用程序運行目錄的/confifig子目錄裏。

2. 外置,在應用程序運行的目錄裏。

3. 內置,在confifig包內。

4. 內置,在Classpath根目錄。

這個列表按照優先級排序,優先級高的會覆蓋優先級低的。

固然咱們能夠本身指定文件的位置來加載配置文件。

java -jar xiaoka.jar ———spring.config.location=/home/application.yml

11. SpringBoot自動配置原理?

@EnableAutoConfifiguration (開啓自動配置) 該註解引入了AutoConfifigurationImportSelector,該類中

的方法會掃描全部存在META-INF/spring.factories的jar包。

12. SpringBoot熱部署方式?

  • spring-boot-devtools

  • Spring Loaded

  • Jrebel

  • 模版熱部署

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

bootstrap.yml 優先於application.yml

14. SpringBoot如何修改端口號?

yml中:

server : port : 8888

properties:

server.port = 8888 

命令1:

java -jar xiaoka.jar ——— server.port=8888 

命令2:

java - Dserver.port=8888 -jar xiaoka.jar

15. 開啓SpringBoot特性的幾種方式?

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

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

16. SpringBoot如何兼容Spring項目?

在啓動類加:

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

17. SpringBoot配置監控?

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

18. 得到Bean裝配報告信息訪問哪一個端點?

/beans 端點

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

/shutdown

該端點默認是關閉的,若是開啓,須要以下設置。

endpoints: shutdown: enabled: true

或者properties格式也是能夠的。

20. 查看發佈應用信息訪問哪一個端點?

/info

21. 針對請求訪問的幾個組合註解?

@PatchMapping

@PostMapping

@GetMapping

@PutMapping

@DeleteMapping

22. SpringBoot 中的starter?

能夠理解成對依賴的一種合成,starter會把一個或一套功能相關依賴都包含進來,避免了本身去依賴費

事,還有各類包的衝突問題。大大的提高了開發效率。

而且相關配置會有一個默認值,若是咱們本身去配置,就會覆蓋默認值。

23. SpringBoot集成Mybatis?

mybatis-spring-boot-starter

24. 什麼是SpringProfifiles?

通常來講咱們從開發到生產,通過開發(dev)、測試(test)、上線(prod)。不一樣的時刻咱們會用不一樣的配置。Spring Profifiles 容許用戶根據配置文件(dev,test,prod 等)來註冊 bean。它們可讓咱們本身選擇何時用什麼配置。

25. 不一樣的環境的配置文件?

能夠是 application-{profifile}.properties/yml ,但默認是啓動主配置文件application.properties,通常

來講咱們的不一樣環境配置以下。

  • `application.properties`:主配置文件

  • `application-dev.properties`:開發環境配置文件

  • `application-test.properties`:測試環境配置文件

  • `application.prop-properties`:生產環境配置文件

26. 如何激活某個環境的配置?

好比咱們激活開發環境。

yml:

spring: profiles: active: dev 

properties:

spring.profiles.active=dev 

命令行:

java -jar xiaoka-v1.0.jar ———spring.profiles.active=dev

27. 編寫測試用例的註解?

@SpringBootTest

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

@ControllerAdvice

@ExceptionHandler

29. SpringBoot 1.x 和 2.x區別?·······

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

2. 配置變動,參數名等。

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

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

5. Actuator的變化

6. CacheManager 的變化

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

  • @PropertySource

  • @Value

  • @Environment

  • @ConfifigurationProperties

最後

關注公衆號:程序員白楠楠,領取2020最新Java面試題手冊(200多頁PDF文檔)。

相關文章
相關標籤/搜索