Spring Boot 面試必須要知道的10個問題


  用下面這些常見的面試問題為下一次 Spring Boot 面試做准備。

  在本文中,我們將討論 Spring boot 中最常見的10個面試問題。現在,在就業市場上,這些問題有點棘手,而且趨勢日益嚴重。

  1. @SpringBootApplication 是做什么的?

  根據 Spring Boot 文檔, @SpringBootApplication 注解相當於使用 @Configuration 、@EnableAutoConfiguration 和 @ComponentScan 及其默認屬性。Spring Boot 允許開發人員使用單個注解而不是多個注解。但是,正如我們所知,Spring 提供了松散耦合的特性,我們可以根據項目的需要單獨使用每個注解。

  2. 如何在不使用 basePackages 過濾器的情況下排除任何包?

  您可以通過不同方式過濾任意的包。但是,在不接觸組件掃描的情況下,Spring Boot 為實現這個提供了一個復雜的選項。當您使用注解 @SpringApplication 時,可以使用 exclude 屬性。請參考以下代碼片段:

  @SpringBootApplication(exclude={Employee.class})

  public class FooAppConfiguration {}

  3. 如何禁用一個特定自動配置類?

  如果您不想要某個特定的自動配置類生效,您可以使用 @EnableAutoConfiguration 的 exclude 屬性。

  //By using "exclude"

  @EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})

  另一方面,如果類不在類路徑上,您可以使用注解的 excludeName 屬性並指定完全限定名稱。

  //By using "excludeName"

  @EnableAutoConfiguration(excludeName={Foo.class})

  另外,Spring Boot 通過使用

  spring.autoconfigure.exclude 屬性來控制要排除的自動配置類列表的工具。您可以添加到 applicationperties 中。並且您可以使用逗號分隔添加多個類。

  //By using property file

  spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration

  4. 什么是Spring Actuator ?它的優勢是什么?

  這是 Spring Boot 最常見的面試問題之一。根據 Spring 文檔:

  “Actuator 是一個制造術語,指用於移動或控制某物的機械裝置。Actuator 可以通過微小的變化產生大量的運動。”

  正如我們所知,Spring Boot 提供了許多自動配置特性,幫助開發人員快速開發產品組件。但是,如果您考慮調試和如何調試,如果出了什么問題,我們總是需要分析日志並挖掘應用程序的數據流,以檢查發生了什么。因此,Spring Actuator 提供了方便的訪問這些類型的功能。它提供了許多特性,例如創建了什么bean、控制器中的映射、CPU 使用情況等等。然后可以將自動收集和審計健康狀況(health)以及指標(metric)到您的應用程序中。

  它提供了一種非常簡單的方法來訪問少數生產就緒的 REST 端點 並從 Web 獲取各種信息。但是通過使用這些端點,您可以做很多事情來查看端點文檔。無需擔心安全性;如果存在 Spring Security ,那么默認情況下使用 Spring Security 的內容協商策略來保護這些端點。或者,我們可以通過 RequestMatcher 的幫助來配置自定義安全性。

  5. 如何啟用/禁用 Actuator ?

  啟用/禁用 Actuator 是很簡單的。最簡單的方法是啟用功能,添加依賴項(Maven/Gradle)到

  spring-boot-starter-actuator ,即 Starter 。如果你不想 Actuator 啟動,則不添加依賴。

  Maven 依賴:

  org.springframework.boot

  spring-boot-starter-actuator

  6. 什么是 Spring Initializer ?

  這可能不是一個很難的問題,但是面試官總是會檢查應聘者的專業知識。通常你不能總是期待你已經准備好的問題。然而,這幾乎一直是一個非常常見的問題。

  Spring Initializer 是一個 Web 應用程序,它使用快速啟動所需的一切來生成 Spring 啟動項目。和往常一樣,我們需要一個好的項目框架;它可以幫助您正確地創建項目結構/框架。您可以在這里了解關於 初始化器 的更多信息。

  7. Actuator 中的關閉是什么?

  關閉是一個端點,它允許應用程序優雅地關閉。默認情況下不啟用此功能。您可以通過在應用程序中的 applicationperties 文件使用

  management.endpoint.shutdown.enabled=true 啟用此功能。但是如果你用這個的話要小心。

  8. 能夠在 Spring boot 中更改嵌入式 Tomcat 服務器的端口嗎?

  是的,可以更改端口。您可以使用 applicationperties 文件改變端口。但是需要提到“ server.port ”(即:server.port=8081)。確保在項目類路徑中有 applicationperties ;REST Spring 框架將處理其余部分。如果您提到 server.port=0 ,那么它將自動分配任何可用的端口。

  9. 我們在 Spring Boot 中能覆蓋或替換嵌入式 Tomcat 服務器嗎?

  是的,我們可以使用 Starter 依賴項將嵌入式 Tomcat 替換為任何其他服務器。您可以根據需要使用 spring-boot-starter-jetty 或 spring-boot-start -undertow 作為每個項目的依賴項。

  10. 我們可以在 Spring Boot 應用程序中禁用默認 web 服務器嗎?

  Spring 的主要優點是提供靈活性來構建松散耦合的應用程序。Spring 提供了在快速配置中禁用 Web 服務器的功能。是的,我們可以使用 applicationperties 來配置 web 應用程序類型,即:

  spring.main.web-application-type=none 。

  祝一切順利!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM