用下面這些常見的面試問題爲下一次 Spring Boot 面試作準備。web
在本文中,咱們將討論 Spring boot 中最多見的10個面試問題。如今,在就業市場上,這些問題有點棘手,並且趨勢日益嚴重。面試
1. @SpringBootApplication 是作什麼的?spring
根據 Spring Boot 文檔, @SpringBootApplication 註解至關於使用 @Configuration 、@EnableAutoConfiguration 和 @ComponentScan 及其默認屬性。Spring Boot 容許開發人員使用單個註解而不是多個註解。可是,正如咱們所知,Spring 提供了鬆散耦合的特性,咱們能夠根據項目的須要單獨使用每一個註解。安全
2. 如何在不使用 basePackages 過濾器的狀況下排除任何包?服務器
您能夠經過不一樣方式過濾任意的包。可是,在不接觸組件掃描的狀況下,Spring Boot 爲實現這個提供了一個複雜的選項。當您使用註解 @SpringApplication
時,可使用 exclude
屬性。請參考如下代碼片斷:app
@SpringBootApplication(exclude= {Employee.class})public class FooAppConfiguration {}
3. 如何禁用一個特定自動配置類?框架
若是您不想要某個特定的自動配置類生效,您可使用 @EnableAutoConfiguration
的 exclude
屬性。spring-boot
//By using "exclude"@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
另外一方面,若是類不在類路徑上,您可使用註解的 excludeName
屬性並指定徹底限定名稱。工具
//By using "excludeName"@EnableAutoConfiguration(excludeName={Foo.class})
另外,Spring Boot 經過使用 spring.autoconfigure.exclude
屬性來控制要排除的自動配置類列表的工具。您能夠添加到 application.properties 中。而且您可使用逗號分隔添加多個類。spa
//By using property filespring.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 依賴:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency></dependencies>
6. 什麼是 Spring Initializer ?
這可能不是一個很難的問題,可是面試官老是會檢查應聘者的專業知識。一般你不能老是期待你已經準備好的問題。然而,這幾乎一直是一個很是常見的問題。
Spring Initializer 是一個 Web 應用程序,它使用快速啓動所需的一切來生成 Spring 啓動項目。和往常同樣,咱們須要一個好的項目框架;它能夠幫助您正確地建立項目結構/框架。您能夠在這裏瞭解關於 初始化器 的更多信息。
7. Actuator 中的關閉是什麼?
關閉是一個端點,它容許應用程序優雅地關閉。默認狀況下不啓用此功能。您能夠經過在應用程序中的 application.properties 文件使用 management.endpoint.shutdown.enabled=true 啓用此功能。可是若是你用這個的話要當心。
8. 可以在 Spring boot 中更改嵌入式 Tomcat 服務器的端口嗎?
是的,能夠更改端口。您可使用 application.properties 文件改變端口。可是須要提到「 server.port 」(即:server.port=8081)。確保在項目類路徑中有 application.properties ;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 服務器的功能。是的,咱們可使用 application.properties 來配置 web 應用程序類型,即:spring.main.web-application-type=none
。
祝一切順利!
來源: http://www.spring4all.com/art...
推薦閱讀:
上篇好文:
爲何選擇 Spring 做爲 Java 框架?
右上角按鈕分享給更多人哦~