前言
到底什么是Spring Boot?為什么越來(lái)越多人使用?說(shuō)起 Spring Boot 我們不得不先了解一下 Spring 這個(gè)企業(yè),不僅因?yàn)?Spring Boot 來(lái)源于 Spirng 大家族,而且 Spring Boot 的誕生和 Sping 框架的發(fā)展息息相關(guān)。
成都做網(wǎng)站、網(wǎng)站建設(shè)介紹好的網(wǎng)站是理念、設(shè)計(jì)和技術(shù)的結(jié)合。創(chuàng)新互聯(lián)擁有的網(wǎng)站設(shè)計(jì)理念、多方位的設(shè)計(jì)風(fēng)格、經(jīng)驗(yàn)豐富的設(shè)計(jì)團(tuán)隊(duì)。提供PC端+手機(jī)端網(wǎng)站建設(shè),用營(yíng)銷(xiāo)思維進(jìn)行網(wǎng)站設(shè)計(jì)、采用先進(jìn)技術(shù)開(kāi)源代碼、注重用戶(hù)體驗(yàn)與SEO基礎(chǔ),將技術(shù)與創(chuàng)意整合到網(wǎng)站之中,以契合客戶(hù)的方式做到創(chuàng)意性的視覺(jué)化效果。
接下來(lái)給大家分享的是10道精選Spring Boot面試題
多年來(lái),隨著新功能的增加,spring 變得越來(lái)越復(fù)雜。只需訪問(wèn) spring網(wǎng)站頁(yè)面,我們就會(huì)看到可以在我們的應(yīng)用程序中使用的所有 Spring 項(xiàng)目的不同功能。如果必須啟動(dòng)一個(gè)新的 Spring 項(xiàng)目,我們必須添加構(gòu)建路徑或添加 Maven 依賴(lài)關(guān)系,配置應(yīng)用程序服務(wù)器,添加 spring 配置。因此,開(kāi)始一個(gè)新的 spring 項(xiàng)目需要很多努力,因?yàn)槲覀儸F(xiàn)在必須從頭開(kāi)始做所有事情。
Spring Boot 是解決這個(gè)問(wèn)題的方法。Spring Boot 已經(jīng)建立在現(xiàn)有 spring 框架之上。使用
spring 啟動(dòng),我們避免了之前我們必須做的所有樣板代碼和配置。因此,Spring Boot 可以
幫助我們以最少的工作量,更加健壯地使用現(xiàn)有的 Spring 功能。
Spring Boot 的優(yōu)點(diǎn)有:
減少開(kāi)發(fā),測(cè)試時(shí)間和努力。
使用 JavaConfig 有助于避免使用 XML。
避免大量的 Maven 導(dǎo)入和各種版本沖突。
提供意見(jiàn)發(fā)展方法。
通過(guò)提供默認(rèn)值快速開(kāi)始開(kāi)發(fā)。
沒(méi)有單獨(dú)的 Web 服務(wù)器需要。這意味著你不再需要啟動(dòng) Tomcat,Glassfish 或其他任何東
西。
需要更少的配置 因?yàn)闆](méi)有 web.xml 文件。只需添加用@ Configuration 注釋的類(lèi),然后添加
用@Bean 注釋的方法,Spring 將自動(dòng)加載對(duì)象并像以前一樣對(duì)其進(jìn)行管理。您甚至可以將
@Autowired 添加到 bean 方法中,以使 Spring 自動(dòng)裝入需要的依賴(lài)關(guān)系中。
基于環(huán)境的配置 使用這些屬性,您可以將您正在使用的環(huán)境傳遞到應(yīng)用程序:-
Dspring.profiles.active = {enviornment}。在加載主應(yīng)用程序?qū)傩晕募?,Spring 將在
(application{environment} .properties)中加載后續(xù)的應(yīng)用程序?qū)傩晕募?br/>
這可以使用 DEV 工具來(lái)實(shí)現(xiàn)。通過(guò)這種依賴(lài)關(guān)系,您可以節(jié)省任何更改,嵌入式 tomcat
將重新啟動(dòng)。Spring Boot 有一個(gè)開(kāi)發(fā)工具(DevTools)模塊,它有助于提高開(kāi)發(fā)人員的生
產(chǎn)力。Java 開(kāi)發(fā)人員面臨的一個(gè)主要挑戰(zhàn)是將文件更改自動(dòng)部署到服務(wù)器并自動(dòng)重啟服務(wù)
器。開(kāi)發(fā)人員可以重新加載 Spring Boot 上的更改,而無(wú)需重新啟動(dòng)服務(wù)器。這將消除每次
手動(dòng)部署更改的需要。Spring Boot 在發(fā)布它的第一個(gè)版本時(shí)沒(méi)有這個(gè)功能。這是開(kāi)發(fā)人員
最需要的功能。DevTools 模塊完全滿(mǎn)足開(kāi)發(fā)人員的需求。該模塊將在生產(chǎn)環(huán)境中被禁用。
它還提供 H2 數(shù)據(jù)庫(kù)控制臺(tái)以更好地測(cè)試應(yīng)用程序。
org.springframework.boot spring-boot-devtools true
Spring boot actuator 是 spring 啟動(dòng)框架中的重要功能之一。Spring boot 監(jiān)視器可幫助您訪
問(wèn)生產(chǎn)環(huán)境中正在運(yùn)行的應(yīng)用程序的當(dāng)前狀態(tài)。有幾個(gè)指標(biāo)必須在生產(chǎn)環(huán)境中進(jìn)行檢查和
監(jiān)控。即使一些外部應(yīng)用程序可能正在使用這些服務(wù)來(lái)向相關(guān)人員觸發(fā)警報(bào)消息。監(jiān)視器
模塊公開(kāi)了一組可直接作為 HTTP URL 訪問(wèn)的 REST 端點(diǎn)來(lái)檢查狀態(tài)。
默認(rèn)情況下,所有敏感的 HTTP 端點(diǎn)都是安全的,只有具有 ACTUATOR 角色的用戶(hù)才能訪
問(wèn)它們。安全性是使用標(biāo)準(zhǔn)的 HttpServletRequest.isUserInRole 方法實(shí)施的。 我們可以使用
management.security.enabled = false
來(lái)禁用安全性。只有在執(zhí)行機(jī)構(gòu)端點(diǎn)在防火墻后訪問(wèn)時(shí),才建議禁用安全性。
為了在自定義端口上運(yùn)行 Spring Boot 應(yīng)用程序,您可以在 application.properties 中指定端
口。
server.port = 8090
為了實(shí)現(xiàn) Spring Boot 的安全性,我們使用 spring-boot-starter-security 依賴(lài)項(xiàng),并且必須添
加安全配置。它只需要很少的代碼。配置類(lèi)將必須擴(kuò)展 WebSecurityConfigurerAdapter 并覆
蓋其方法。
對(duì)于集成 Spring Boot 和 ActiveMQ,我們使用
spring-boot-starter-activemq
依賴(lài)關(guān)系。 它只需要很少的配置,并且不需要樣板代碼。
Spring 提供了一種使用 ControllerAdvice 處理異常的非常有用的方法。 我們通過(guò)實(shí)現(xiàn)一個(gè)
ControlerAdvice 類(lèi),來(lái)處理控制器類(lèi)拋出的所有異常。
Spring Boot 提供監(jiān)視器端點(diǎn)以監(jiān)控各個(gè)微服務(wù)的度量。這些端點(diǎn)對(duì)于獲取有關(guān)應(yīng)用程序的
信息(如它們是否已啟動(dòng))以及它們的組件(如數(shù)據(jù)庫(kù)等)是否正常運(yùn)行很有幫助。但
是,使用監(jiān)視器的一個(gè)主要缺點(diǎn)或困難是,我們必須單獨(dú)打開(kāi)應(yīng)用程序的知識(shí)點(diǎn)以了解其
狀態(tài)或健康狀況。想象一下涉及 50 個(gè)應(yīng)用程序的微服務(wù),管理員將不得不擊中所有 50 個(gè)
應(yīng)用程序的執(zhí)行終端。