全文共2564字,預計學習時長5分鐘web
本文將討論Spring Boot中最多見的10個面試問題。在當今就業市場中,這些問題出現的頻率呈上升趨勢而且有一些棘手。面試
1. @SpringBootApplication註釋在內部有什麼用處?
做爲Spring引導文檔,@SpringBootApplication註釋等同於同時使用@Configuration、@EnableAutoConfiguration和@ComponentScan及其默認屬性。Spring Boot容許開發人員使用單個註釋而不是多個註釋。可是,衆所周知,Spring提供了鬆散耦合的特性,咱們能夠根據項目須要爲每一個註釋使用這些特性。spring
2. 如何在不使用BasePACKAGE過濾器的狀況下排除程序包?安全
過濾程序包的方法不盡相同。可是彈簧啓動提供了一個更復雜的選項,能夠在不接觸組件掃描的狀況下實現這一點。在使用註釋@ SpringBootApplication時,可使用排除屬性。請參閱下面的代碼片斷:服務器
@SpringBootApplication(exclude= {Employee.class})微信
public class FooAppConfiguration {}網絡
3. 如何禁用特定的自動配置類?app
若發現任何不肯使用的特定自動配置類,可使用@EnableAutoConfiguration的排除屬性。框架
//By using 「exclude」spring-boot
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
另外一方面,若是類別不在類路徑上,則可使用excludeName類註解,而且指定徹底限定名。
//By using 「excludeName」
@EnableAutoConfiguration(excludeName={Foo.class})
此外,Spring Boot還具備控制排除自動配置類列表的功能,能夠經過使用spring.autoconfigure.exclude property來實現。能夠將其添加到 propertie應用程序中,而且能夠添加逗號分隔的多個類。
//By using property file
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
4. 什麼是Spring Actuator?它有什麼優點?
這是Spring Boot中最多見的面試問題之一。根據Spring文件:
執行器是一個製造術語,指的是移動或控制某物的機械裝置。執行機構能夠從一個小的變化中產生大量的運動。
衆所周知,Spring Boot提供了許多自動配置特性,幫助開發人員快速開發生產組件。可是,當考慮調試和如何調試,若是出現問題,老是須要分析日誌並挖掘應用程序的數據流,檢查問題出在何處。所以,Spring Actuator提供了方便的訪問這些類型的途徑。它提供了許多特性,例如建立了什麼樣的bean、控制器中的映射、CPU使用狀況等等。它還能夠將自動收集和審計健康情況和指標應用到應用程序中。
它提供了一種很是簡單的方法來訪問少數生產就緒的REST端點,並從Web獲取各類信息。可是經過使用這些端點,你能夠作不少事情來查看端點文檔。沒有必要擔憂安全問題;若是存在Spring Security,則默認使用Spring Security的內容協商策略保護這些端點。或者,能夠在RequestMatcher的幫助下配置自定義安全性。
5. 如何啓用/禁用執行器?
啓用/禁用致動器很容易;最簡單的方法是使特性可以將依賴項(Maven/Gradle)添加到spring-boot-starter-actuator,即啓動器。若是不想啓用致動器,那麼就不要添加依賴項。
Maven依賴項:
org.springframework.boot
spring-boot-starter-actuator
6. 什麼是Spring Initializer?
這個問題並不難,但面試官老是以此測試候選人的專業知識。
Spring Initializer是一個網絡應用程序,它能夠生成一個Spring Boot項目,包含快速啓動所需的一切。和往常同樣,咱們須要一個好的項目框架;它有助於你正確建立項目結構/框架。
7. 什麼是執行器停機?
關機是容許應用程序正常關機的端點。默認狀況下,此功能不啓用。你能夠在應用程序屬性文件中使用management . endpoint . shut down . 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替換爲任何其餘服務器。能夠根據須要使用SpringBootStarter Jetty或SpringBootStarter做爲每一個項目的依賴項。
10. 能夠在Spring Boot application中禁用默認的Web服務器嗎?
Spring的主要優點是提供靈活性來構建鬆散耦合的應用程序。Spring提供了在快速配置中禁用網絡服務器的功能。可使用應用程序屬性來配置網絡應用程序類型,例如 spring.main.web-application-type=none.
留言 點贊 關注
咱們一塊兒分享AI學習與發展的乾貨
歡迎關注全平臺AI垂類自媒體 「讀芯術」
添加小編微信:dxsxbb 便可進微信交流羣