這10道springboot常見面試題你需要了解下


1、什么是Spring Boot?

多年來,隨著新功能的增加,spring變得越來越復雜。只需訪問https://spring.io/projects頁面,我們就會看到可以在我們的應用程序中使用的所有Spring項目的不同功能。

如果必須啟動一個新的Spring項目,我們必須添加構建路徑或添加Maven依賴關系,配置應用程序服務器,添加spring配置。

因此,開始一個新的spring項目需要很多努力,因為我們現在必須從頭開始做所有事情。

Spring Boot是解決這個問題的方法。Spring Boot已經建立在現有spring框架之上。使用spring啟動,我們避免了之前我們必須做的所有樣板代碼和配置。

因此,Spring Boot可以幫助我們以最少的工作量,更加健壯地使用現有的Spring功能。


2、Spring Boot有哪些優點?

  • 減少開發,測試時間和努力。

  • 使用JavaConfig有助于避免使用XML。

  • 避免大量的Maven導入和各種版本沖突。

  • 提供意見發展方法。

  • 通過提供默認值快速開始開發。

  • 沒有單獨的Web服務器需要。這意味著你不再需要啟動Tomcat,Glassfish或其他任何東西。

  • 需要更少的配置 因為沒有web.xml文件。只需添加用@ Configuration注釋的類,然后添加用@Bean注釋的方法,Spring將自動加載對象并像以前一樣對其進行管理。您甚至可以將@Autowired添加到bean方法中,以使Spring自動裝入需要的依賴關系中。

  • 基于環境的配置 使用這些屬性,您可以將您正在使用的環境傳遞到應用程序:-Dspring.profiles.active = {enviornment}。在加載主應用程序屬性文件后,Spring將在(application{environment} .properties)中加載后續的應用程序屬性文件。


3、什么是JavaConfig?

Spring JavaConfig是Spring社區的產品,它提供了配置Spring IoC容器的純Java方法。因此它有助于避免使用XML配置。使用JavaConfig的優點在于:

面向對象的配置。由于配置被定義為JavaConfig中的類,因此用戶可以充分利用Java中的面向對象功能。一個配置類可以繼承另一個,重寫它的@Bean方法等。

減少或消除XML配置。基于依賴注入原則的外化配置的好處已被證明。但是,許多開發人員不希望在XML和Java之間來回切換。

JavaConfig為開發人員提供了一種純Java方法來配置與XML配置概念相似的Spring容器。

從技術角度來講,只使用JavaConfig配置類來配置容器是可行的,但實際上很多人認為將JavaConfig與XML混合匹配是理想的。

類型安全和重構友好。JavaConfig提供了一種類型安全的方法來配置Spring容器。由于Java 5.0對泛型的支持,現在可以按類型而不是按名稱檢索bean,不需要任何強制轉換或基于字符串的查找。


4、如何重新加載Spring Boot上的更改,而無需重新啟動服務器?

這可以使用DEV工具來實現。通過這種依賴關系,您可以節省任何更改,嵌入式tomcat將重新啟動。

Spring Boot有一個開發工具(DevTools)模塊,它有助于提高開發人員的生產力。Java開發人員面臨的一個主要挑戰是將文件更改自動部署到服務器并自動重啟服務器。

開發人員可以重新加載Spring Boot上的更改,而無需重新啟動服務器。這將消除每次手動部署更改的需要。Spring Boot在發布它的第一個版本時沒有這個功能。

這是開發人員最需要的功能。DevTools模塊完全滿足開發人員的需求。該模塊將在生產環境中被禁用。它還提供H2數據庫控制臺以更好地測試應用程序。

5、Spring Boot中的監視器是什么?

Spring boot actuator是spring啟動框架中的重要功能之一。Spring boot監視器可幫助您訪問生產環境中正在運行的應用程序的當前狀態。

有幾個指標必須在生產環境中進行檢查和監控。即使一些外部應用程序可能正在使用這些服務來向相關人員觸發警報消息。監視器模塊公開了一組可直接作為HTTP URL訪問的REST端點來檢查狀態。


6、如何在Spring Boot中禁用Actuator端點安全性?

默認情況下,所有敏感的HTTP端點都是安全的,只有具有ACTUATOR角色的用戶才能訪問它們。

安全性是使用標準的HttpServletRequest.isUserInRole方法實施的。 我們可以使用management.security.enabled = false 來禁用安全性。只有在執行機構端點在防火墻后訪問時,才建議禁用安全性。

如何在自定義端口上運行Spring Boot應用程序? 為了在自定義端口上運行Spring Boot應用程序,您可以在application.properties中指定端口。 server.port = 8090


7、什么是YAML?

YAML是一種人類可讀的數據序列化語言。它通常用于配置文件。 與屬性文件相比,如果我們想要在配置文件中添加復雜的屬性,YAML文件就更加結構化,而且更少混淆。可以看出YAML具有分層配置數據。


8、如何實現Spring Boot應用程序的安全性?

為了實現Spring Boot的安全性,我們使用 spring-boot-starter-security依賴項,并且必須添加安全配置。它只需要很少的代碼。配置類將必須擴展WebSecurityConfigurerAdapter并覆蓋其方法。


9、如何集成Spring Boot和ActiveMQ?

對于集成Spring Boot和ActiveMQ,我們使用spring-boot-starter-activemq 依賴關系。 它只需要很少的配置,并且不需要樣板代碼。


10、如何使用Spring Boot實現分頁和排序?

使用Spring Boot實現分頁非常簡單。使用Spring Data-JPA可以實現將可分頁的org.springframework.data.domain.Pageable傳遞給存儲庫方法。


免費Java資料領取,涵蓋了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo/Kafka、Hadoop、Hbase、Flink等高并發分布式、大數據、機器學習等技術。

傳送門:mp.weixin.qq.com/s/JzddfH-7y…


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/275693.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/275693.shtml
英文地址,請注明出處:http://en.pswp.cn/news/275693.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Silverlight中使用MIRIA進行觸屏編程

Silverlight for Windows phone7中可以使用XNA提供的功能進行觸屏編程,不過暫時還沒有網頁Silverlight的XNA移植。經過搜索發現MIRIA這個開源項目http://miria.codeplex.com/ 可以在Silverlight中實現Touch、Gesture的功能。 用法如下: 1、項目中引用MIG…

React 核心開發者 Dan Abramov 訪談實錄

大家好,我是若川。面試、學習源碼系列、年度總結、JS基礎系列譯者注:本譯文是在「在線對話 React.js 核心開發者」一個半小時直播的基礎上進行的原文翻譯,包括了直播中的所有問答內容,盡可能保留了 Dan 回答的中心語義&#xff0c…

python ev3圖形化編程軟件下載_mPython(圖形化編程軟件)

mPython是盛思技術團隊在BBC官方原版PythonEditor基礎上、拓展開發的應用軟件。可以進行可視化代碼編程,有hex、python、blockly三種代碼讀寫等功能。功能介紹1、不依賴網絡,可離線安裝使用2、支持hex、python、blockly三種代碼的讀寫3、blockly模式下支…

02-15 GUCCI 我喜歡的

我覺得,GUCCI是低調的奢華,價格不是很高,容易接近,符合我的風格,是現階段我的選擇 樣式我喜歡 希望我的生活質量步步高升,將來不再為追求物質生活而奮斗。 轉載于:https://www.cnblogs.com/yd1227/archive/…

php 批量修改mysql 數據表,字段 字符集編碼

$sql"SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA 數據庫名稱";$r$pdo->query($sql,2);foreach($r as $v){//if($v[TABLE_NAME]!monxin_index_user){continue;} 代碼來源 夢行云軟件$sql"alter table ".$v[TABLE_NAME]." conver…

python如何安裝panda數據庫_在Pycharm中安裝Pandas庫方法(簡單易懂)

開發環境的搭建是一件入門比較頭疼的事情,在上期的文稿基礎上,增加一項Anaconda的安裝介紹。Anaconda是Python的一個發行版本,安裝好了Anaconda就相當于安裝好了Python,并且里面還集成了很多Python科學計算的第三方庫。比如我們需…

譯文 | Vue 在哪些方面做的比 React 更好?

大家好,我是若川。在過去的五年中,我一直是一名 React 工程師。我愛React。我喜歡開發 React 應用程序。我認為它是目前最好的UI框架之一。但是,在這個領域有一些競爭對手。其中最大的是 Vue.js 。我以前玩過一些 Vue.js,但我認為…

表單提交中Get和Post方式的區別及EncType表明提交數據的格式詳解

表單提交中Get和Post方式的區別1. get是從服務器上獲取數據,post是向服務器傳送數據。2. get是把參數數據隊列加到提交表單的ACTION屬性所指的URL中,值和表單內各個字段一一對應,在URL中可以看到。post是通過HTTP post機制,將表單…

web mp4第一幀_Web成幀器就在這里!

web mp4第一幀The Framer Team is pulling up it’s pants. I sniffed something cooking when they announced a public beta for Framer for web… FRAMER FOR WEB? Yes, I don’t know how they did it, but their powerful set of tools, plugins and animation controls …

Lucene學習總結之三:Lucene的索引文件格式(2)

2019獨角獸企業重金招聘Python工程師標準>>> 四、具體格式 上面曾經交代過,Lucene保存了從Index到Segment到Document到Field一直到Term的正向信息,也包括了從Term到Document映射的反向信息,還有其他一些Lucene特有的信息。下面對這…

JavaScript 數組 API 全解析

在編程世界中,數組是指元素的集合。數組將數據作為元素進行存儲,并在需要時將其取出。在支持數組的編程語言中廣泛地采用了這個數據結構。這個手冊會介紹 JavaScript 數組的所有知識。你將會學到復雜數據處理、解構、常用數組方法等內容。我為什么寫這篇…

Spoken English(001)

if he wants to make any changes,minor alternations can be made thenis there any way of ensuring well have enough time for our talks?so our evenings will be quite full then?We’ll leave some evenings free,that is, if it is all right with you.We’d have to…

美學設計評價_死亡的孩子無法使用的設計美學

美學設計評價In the popular anime series, Soul Eater, Death the Kid is a Shinigami (Japanese death god) who vanquishes evil with his dual pistols, Liz and Patty. Although he’s strikingly powerful, his battles are often hindered by his obsessive-compulsive …

iis php網站500錯誤原因_因為曾經錯誤安裝過PHP5.2而導致IIS7無法正常工作,顯示500錯誤提示,大家幫忙看看!...

我的系統是VISTA,使用自帶的IIS7,對ASP網頁一直瀏覽正常。最近因自己心血來潮錯誤安裝了一次PHP5.2。主要操作是:1、下載的是自動安裝的PHP5.2程序,自動選ISAPI按鈕安裝;2、對IIS7中添加了名為“PHP”的ISAPI篩選器,選…

【送書】2021年哪些好書值得讀(小姐姐配音)

大家好,我是若川。記得點上面的小姐姐再次錄制的配音。為感謝大家一直以來的支持和肯定。不知道是今年第幾次送書了。昨天送書的音頻廣受好評,沒參與的可以參與。今天聯合華章圖書再送文中任選一本 * 3 包郵送,詳細規則看文末。Web開發01《斯…

Flash獲取html參數的方法

一. swf?傳參 html代碼:代碼<html><head><meta http-equiv”Content-Type” content”text/html charsetutf-8″ /><title>as</title></head><body><object classid”clsid:D27CDB6E-AE6D-11cf-96B8-444553540000″ codebase”h…

方法重載_方法

方法重載Recently, I wrote an article about moving XD designs to Figma. It was a really interesting experiment and one that seemed to interest quite a lot of people.最近&#xff0c;我寫了一篇有關將XD設計移至Figma的文章。 這是一個非常有趣的實驗&#xff0c;似…

php strtoup,PHP 7 的幾處函數安全小變化

To Begin With最近在準備 LANCTF&#xff0c;想把環境遷移到 PHP 7&#xff0c;卻想到一些 payload 失效了。想著什么時候總結成一個筆記&#xff0c;恰巧在 FB 發現有人寫了一篇博文&#xff0c;拜讀后結合 CTF 環境整理了一下&#xff0c;總體來說&#xff0c;棄用了較多不安…

Node.js 框架設計及企業 Node.js 基礎建設相關討論

大家好&#xff0c;我是若川。19年我寫的 lodash源碼 文章投稿到海鏡大神知乎專欄竟然通過了&#xff0c;后來20年海鏡大神還star了我的博客&#xff0c;同時還轉發了我的微博。時間真快啊。今天分享這篇Node.js的討論。2021 年上半年早已過去&#xff0c;回顧 Node.js 在國內的…

DAS、NAS、SAN、iSCSI 存儲方案概述

目前服務器所使用的專業存儲方案有DAS、NAS、SAN、iSCSI幾種。存儲根據服務器類型可以分為&#xff1a;封閉系統的存儲和開放系統的存儲&#xff1a; &#xff08;1&#xff09;封閉系統主要指大型機. &#xff08;2&#xff09;開放系統指基于包括Windows、UNIX、Linux等操作系…