天天看點

springboot日志可視化_spring boot面試問題集錦

擊上方“碼農突圍”,馬上關注,每天早上8:50準時推送

真愛,請置頂或星标

springboot日志可視化_spring boot面試問題集錦

譯文作者:david  原文連結:https://www.javainuse.com/spring/SpringBootInterviewQuestions

如遇到不好閱讀的格式問題,請移步到部落格園檢視:https://www.cnblogs.com/davidwang456/p/10365640.html

或者使用pc閱讀

Q: 什麼是spring boot?

A:多年來,随着新功能的增加,spring變得越來越複雜。隻需通路頁面https://spring.io/projects,我們将看到所有在應用程式中使用的不同功能的spring項目。如果必須啟動一個新的spring項目,我們必須添加建構路徑或maven依賴項,配置application server,添加spring配置。是以,啟動一個新的spring項目需要大量的工作,因為我們目前必須從頭開始做所有事情。Spring Boot是這個問題的解決方案。Spring boot建構在現有Spring架構之上。使用spring boot,我們可以避免以前必須執行的所有樣闆代碼和配置。是以,Spring boot幫助我們更健壯地使用現有的Spring功能,并且隻需最少的工作量。

Q:Spring Boot的優點是什麼?

A: Spring Boot的優點是

  減少開發、測試的時間和工作量。

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

  避免大量maven導入和各種版本沖突。

  提供可選的開發方法。

  通過提供預設開發方式進行快速開發。

  不需要單獨的Web伺服器。這意味着您不再需要啟動Tomcat、Glassfish或其他任何東西。

  由于沒有web.xml檔案,是以需要更少的配置。隻需添加帶@ configuration注釋的類,然後可以添加帶@ bean注釋的方法,Spring将自動加載對象并像往常一樣管理它。您甚至可以将@Autowired添加到bean方法中,使Spring autowire成為bean所需的依賴項。

  基于環境的配置——使用這些屬性,您可以将其傳遞到您正在使用的應用程式環境中:- dspring .profile .active={enviorement}。在加載主應用程式屬性檔案之後,Spring将在(application-{environment}.properties)處加載後續的應用程式屬性檔案。

Q:您使用過哪些建構工具來開發Spring引導應用程式?

A: Spring Boot應用程式可以使用Maven和Gradle開發。

Q:什麼是JavaConfig?

A:Spring JavaConfig是Spring社群的一個産品,它提供了一種純java方法來配置Spring IoC容器。是以,它有助于避免使用XML配置。使用JavaConfig的優點是:

  面向對象的配置。因為配置在JavaConfig中定義為類,是以使用者可以充分利用Java中的面向對象特性。一個配置類可以子類化另一個配置類,覆寫它的@Bean方法,等等。

  減少或消除XML配置。已經證明了基于依賴注入原則的外部化配置的好處。然而,許多開發人員不願意在XML和Java之間來回切換。JavaConfig為開發人員提供了一種純java方法來配置Spring容器,這種方法在概念上類似于XML配置。從技術上講,僅使用   JavaConfig配置類來配置容器是可行的,但是在實踐中,許多人發現将JavaConfig與XML混合并比對是理想的。

  類型安全的重構能力。JavaConfig提供了一種類型安全的配置Spring容器的方法。由于Java 5.0對泛型的支援,現在可以通過類型而不是名稱檢索bean,不需要進行任何基于類型轉換或字元串的查找。

問:如何在不重新開機伺服器的情況下在Spring引導時重新加載我的更改?

答:這可以通過開發工具來實作。有了這個依賴項,您儲存的任何更改都将重新啟動嵌入的tomcat。Spring Boot有一個開發人員工具(DevTools)子產品,它有助于提高開發人員的工作效率。Java開發人員面臨的關鍵挑戰之一是将檔案更改自動部署到伺服器并自動重新開機伺服器。開發人員可以在Spring引導時重新加載更改,而不必重新啟動伺服器。這将消除每次手動部署更改的需要。Spring Boot在釋出第一個版本時沒有這個特性。這是開發人員最需要的特性。DevTools子產品完全滿足開發人員的需求。此子產品将在生産環境中禁用。它還提供了H2-database控制台,以便更好地測試應用程式。使用以下依賴項

<dependency><groupId>org.springframework.bootgroupId><artifactId>spring-boot-devtoolsartifactId><optional>trueoptional>dependency>
           

下面的示例示範了自動啟動和H2 DB控制台的DevTool依賴項用法

什麼是Spring boot actuator?

答:Spring boot actuator是Spring boot framework的重要特性之一。Spring boot actuator幫助您通路生産環境中正在運作的應用程式的目前狀态,在生産環境中必須檢查和監視幾個名額。甚至一些外部應用程式也可能使用這些服務來觸發對相關人員的警報消息。actuator子產品公開一組REST端點,這些端點可以作為HTTP URL直接通路,以檢查狀态。

問:如何将Spring Boot應用程式作為war包部署?

答:Spring Boot WAR部署

問:什麼是Docker嗎?如何将Spring引導應用程式部署到Docker?

A: Docker是什麼

将基于Spring的WAR應用程式部署到Docker

将基于Spring的JAR應用程式部署到Docker

問:如何禁用執行器端點安全在Spring啟動?

答:預設情況下,所有敏感的HTTP端點都是安全的,隻有具有ACTUATOR角色的使用者才能通路它們。安全性是使用标準HttpServletRequest.isUserInRole方法實作的。

我們可以使用-禁用安全性

management.security.enabled = false

建議僅當在防火牆後通路ACTUATOR端點時禁用安全性。

問:如何将Spring引導應用程式運作到自定義端口?

要在自定義端口上運作spring引導應用程式,可以在application.properties中指定端口。

server.port = 8090

什麼是ELK堆棧?如何與Spring Boot一起使用?

答:ELK堆棧由三個開源産品組成——Elasticsearch、Logstash和Kibana from Elastic。

springboot日志可視化_spring boot面試問題集錦

    Elasticsearch是一個基于Lucene搜尋引擎的NoSQL資料庫。

    Logstash是一個日志管道工具,它接受來自不同來源的輸入,執行不同的轉換,并将資料導出到不同的目标。它是一個動态的資料收集管道,具有可擴充的插件生态系統和強大的彈性搜尋協同作用

    Kibana是一個可視化UI層,工作在Elasticsearch之上。

這三個項目一起用于各種環境中的日志分析。是以Logstash收集和解析日志、彈性搜尋索引并存儲這些資訊,而Kibana提供了一個UI層,提供可操作的可見性。

Spring Boot + ELK stack

問:您有使用Spring Boot編寫測試用例嗎?

答:SpringBoot為編寫單元測試用例提供了@SpringBootTest

Spring引導單元測試的簡單示例

問:YAML是什麼?

答:YAML是一種人類可讀的資料序列化語言。它通常用于配置檔案。

與屬性檔案相比,YAML檔案的結構更加結構化,如果我們希望在配置檔案中添加複雜的屬性,那麼它不會造成太大的混亂。可以看到,YAML具有分層的配置資料。

在Spring引導中使用YAML屬性

問:如何為Spring引導應用程式實作安全性?

答:為了實作Spring Boot的安全性,我們使用Spring - Boot -starter-security依賴項,必須添加安全配置。它隻需要很少的代碼。Config類必須擴充WebSecurityConfigurerAdapter并覆寫它的方法。

Spring引導安全性示例和說明

問:您是否內建了Spring Boot和ActiveMQ ?

為了內建Spring Boot和ActiveMQ,我們使用Spring - Boot -starter- ActiveMQ依賴項,它隻需要很少的配置,沒有樣闆代碼。

Spring引導ActiveMQ說明

問:您是否內建了Spring Boot和Apache Kafka ?

答:為了內建Spring Boot和Apache Kafka,我們使用Spring - Kafka依賴項。

Spring Boot + Apache Kafka示例

問:如何使用Spring引導實作分頁和排序?

答:使用Spring Boot實作分頁非常簡單。使用Spring Data-JPA,這是通過傳遞可分頁的org.springframe .data.domain來實作的。可分頁到存儲庫方法。

Spring引導分頁說明

什麼是Swagger?您是否使用Spring Boot實作了它?

答:Swagger被廣泛用于可視化api,Swagger UI為前端開發人員提供線上沙箱環境。在本教程中,我們将使用Swagger 2規範的Springfox實作。Swagger是一種工具、規範和完整的架構實作,用于生成RESTful Web服務的可視化表示。它允許文檔以與伺服器相同的速度更新。當通過Swagger正确定義時,使用者可以用最少的實作邏輯了解遠端服務并與之互動。是以Swagger消除了調用服務時的猜測。

Spring Boot + Swagger2

問:什麼是Spring Profiles?如何使用Spring Boot實作它?

答:Spring Profiles允許使用者根據配置檔案(dev, test, prod等)注冊bean。是以,當應用程式在開發中運作時,隻能加載某些bean,當應用程式在生産中運作時,隻能加載某些其他bean。假設我們的需求是Swagger文檔隻對QA環境啟用,對所有其他環境禁用。這可以使用配置檔案來完成。Spring Boot使得使用配置檔案非常容易。

Spring引導+配置檔案

什麼是Spring Boot Batch?如何使用Spring Boot實作它?

答:Spring Boot Batch提供了處理大量記錄所必需的可重用功能,包括日志/跟蹤、事務管理、作業處理統計資訊、作業重新開機、作業跳過和資源管理。它還提供了更進階的技術服務和特性,通過優化和分區技術,這些特性将支援極高容量和高性能的批處理作業。無論是簡單的還是複雜的,大容量批處理作業都可以以高度可伸縮的方式利用該架構來處理大量資訊。

Spring Boot Batch

問:什麼是FreeMarker模闆?如何使用Spring Boot實作它?

答:FreeMarker是一個基于java的模闆引擎,最初專注于使用MVC軟體架構生成動态web頁面。使用Freemarker的主要優勢是完全分離了表示層和業務層。程式員可以處理應用程式代碼,而設計人員可以處理html頁面設計。最後,使用freemarker,這些可以組合在一起,給出最終的輸出頁面。

Spring Boot + FreeMarker的例子

問:如何使用Spring Boot實作異常處理?

答:Spring提供了一種非常有用的方法,可以使用ControllerAdvice處理異常。我們将實作一個ControlerAdvice類,它将處理控制器類抛出的所有異常。

Spring引導異常處理

什麼是緩存?您在Spring引導中使用過緩存架構嗎?

答:緩存是本地記憶體的一個區域,它儲存了頻繁通路的資料的副本,否則擷取或計算這些資料将非常昂貴。使用Hazelcast進行緩存。

Spring Boot + Hazelcast示例

問:您是否使用Spring Boot公開了SOAP web服務端點?

是的。使用Spring Boot公開了要使用的web服務。使用契約優先的方法從wsdl生成類。

Spring引導+ SOAP Web服務示例

問:您如何使用Spring Boot執行資料庫操作?

答:Spring引導教程-Spring Data JPA

Spring引導JDBC示例

問:如何使用Spring上傳檔案?

A: Spring Boot +檔案上傳的例子

問:如何用Spring Boot實作攔截器?

答:使用Spring MVC HandlerInterceptor與Spring引導

問:如何在Spring Boot下使用schedulers ?

答:Spring引導任務排程程式示例

問:您使用過哪些啟動器maven依賴項?

答:使用過不同的starter依賴項,如spring-boot-starter-activemq依賴項、spring-boot-starter-security依賴項、spring-boot-starter-web依賴項。

這有助于減少依賴項的數量,并減少版本組合。

Spring引導安全性示例和說明

什麼是CSRF攻擊?如何啟用CSRF對其進行保護?

CSRF代表跨站請求僞造。它是一種攻擊,迫使最終使用者在其目前已經過身份驗證的web應用程式上執行不需要的操作。CSRF攻擊專門針對狀态更改請求,而不是資料竊取,因為攻擊者無法看到對僞造請求的響應。

Spring引導安全性—啟用CSRF保護

問:如何使用Spring引導使用表單登入身份驗證?

答:Spring引導表單安全登入Hello World示例

什麼是OAuth2?如何使用Spring Boot實作它?

答:Spring Boot + OAuth2實作

問:GZIP是什麼?如何使用Spring Boot實作它?

答:gzip是一種檔案格式,是一種用于檔案壓縮和解壓縮的軟體應用程式。

Spring引導+ GZIP壓縮

問:您在Spring引導中使用過內建架構嗎?

答:已将Apache Camel與Spring引導內建。使用Apache Camel Spring啟動啟動依賴項。

Spring Boot +Apache Camel

問:什麼是Apache Freemarker?什麼時候使用它而不是JSP?如何與Spring Boot內建?

答:JSP是為網頁量身定做的,Freemarker模闆是一種更通用的模闆語言——它可以用來生成html、純文字、電子郵件等。

Spring Boot + FreeMarker的例子

問:你什麼時候使用WebSockets?如何使用Spring Boot實作它?

答:WebSocket是一種計算機通信協定,通過單個TCP連接配接提供全雙工通信通道。

springboot日志可視化_spring boot面試問題集錦

WebSocket是雙向的——使用WebSocket用戶端或伺服器都可以發起發送消息。

WebSocket是全雙工的——用戶端和伺服器之間的通信是互相獨立的。

單個TCP連接配接——初始連接配接使用HTTP,然後将此連接配接更新為基于套接字的連接配接。然後,這個單一連接配接将用于未來的所有通信

輕- WebSocket消息資料交換比http輕得多。

Spring Boot + WebSockets的例子

什麼是AOP?如何與Spring Boot一起使用?

答:在軟體開發過程中,跨越應用程式多個點的功能稱為橫切關注點。這些橫切關注點不同于應用程式的主要業務邏輯。是以,将這些橫切關注點從業務邏輯中分離出來是面向方面程式設計(AOP)的切入點。

Spring Boot + AOP示例

問:什麼是Apache Kafka?如何與Spring Boot內建?

答:apache Kafka是一個分布式釋出-訂閱消息傳遞系統。它是一個可伸縮的、容錯的、釋出-訂閱消息傳遞系統,使我們能夠建構分布式應用程式。這是一個Apache頂級項目。Kafka适用于離線和線上的消息消費。

Spring Boot + Apache Kafka示例

問:我們如何監視所有Spring Boot微服務?

答:Spring Boot提供了actuator 端點來監控單個微服務的名額。這些端點對于擷取關于應用程式的資訊非常有幫助,比如應用程式是否啟動,它們的元件(如資料庫等)是否正常工作。但是,使用actuator 接口的一個主要缺點或困難是,我們必須逐個命中這些接口,以了解應用程式的狀态或健康狀況。假設微服務涉及50個應用程式,管理者将不得不命中所有50個應用程式的actuator 端點。為了幫助我們處理這種情況,我們将使用位于https://github.com/codecentric/springing-boot-admin的開源項目。

它建構在Spring Boot Actuator之上,提供了一個web UI,使我們能夠可視化多個應用程式的名額。

Spring Boot Admin

問:您在Spring引導中使用過Spring Cloud元件嗎?

答:使用過Netflix Eureka等Spring Cloud元件進行服務注冊,Ribbon用于負載平衡。

Spring Boot + Cloud Components 

Spring Cloud interview Questions

問:如何将Spring Boot應用程式部署到Pivotal Cloud Foundry(PCF)?

Deploying Spring Boot Application to PCF 

問:如何将Spring Boot + MySQL應用部署到Pivotal Cloud Foundry(PCF)?

A: Pivotal Cloud Foundry Tutorial - Deploying Spring Boot + MySQL Application to PCF 

問:如何将Spring Boot + RabbitMQ應用部署到Pivotal Cloud Foundry(PCF)?

A: Pivotal Cloud Foundry Tutorial - Deploying Spring Boot + RabbitMQ Application to PCF 

springboot日志可視化_spring boot面試問題集錦

有熱門推薦👇

1. 面試官問我:一個 TCP 連接配接可以發多少個 HTTP 請求?我竟然回答不上來...

2. 不敢相信?System.currentTimeMillis() 居然存在性能問題

3. GitHub 标星 3.2w!史上最全技術面試手冊!

4. 面試常考:Java中synchronized和volatile有什麼差別?

5. Spring 常犯的十大錯誤,打死都不要犯!

6. Java 線程池 ThreadPoolExecutor 八種拒絕政策淺析

句題外話,有不少人想加魚哥微信,魚哥姑且放出來,但是坑位有限哦

springboot日志可視化_spring boot面試問題集錦

想去大廠麼?來加入魚哥技術星球,放大你進大廠機率

掃描如下二維碼加入我的知識星球:

springboot日志可視化_spring boot面試問題集錦
springboot日志可視化_spring boot面試問題集錦