聲明:此文章非本人所 原創,是別人分享所得,若有知道原做者是誰能夠聯繫本人,若有轉載請加上此段話html
問題一前端
什麼是 Spring Boot?程序員
多年來,隨着新功能的增長,spring 變得愈來愈複雜。只需訪問 https://spring.io/projects頁面,咱們就會看到能夠在咱們的應用程序中使用的全部 Spring 項目的不一樣功能。若是必須啓動一個新的 Spring 項目,咱們必須添加構建路徑或添加 Maven 依賴關係,配置應用程序服務器,添加 spring 配置。所以,開始一個新的 spring 項目須要不少努力,由於咱們如今必須從頭開始作全部事情。web
Spring Boot 是解決這個問題的方法。Spring Boot 已經創建在現有 spring 框架之上。使用spring 啓動,咱們避免了以前咱們必須作的全部樣板代碼和配置。所以,Spring Boot 能夠幫助咱們以最少的工做量,更加健壯地使用現有的 Spring 功能。spring
Spring Boot 有哪些優勢?數據庫
Spring Boot 的優勢有:編程
沒有單獨的 Web 服務器須要。這意味着你再也不須要啓動 Tomcat,Glassfish 或其餘任何東西。tomcat
須要更少的配置 由於沒有 web.xml 文件。只需添加用@ Configuration 註釋的類,而後添加用@Bean 註釋的方法,Spring 將自動加載對象並像之前同樣對其進行管理。您甚至能夠將@Autowired 添加到 bean 方法中,以使 Spring 自動裝入須要的依賴關係中。安全
使用這些屬性,您能夠將您正在使用的環境傳遞到應用程序:Dspring.profiles.active= {enviornment}。在加載主應用程序屬性文件後,Spring 將在Dspring.profiles.active(application{environment} .properties)中加載後續的應用程序屬性文件。服務器
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,不須要任何強制轉換或基於字符串的查找。
這可使用 DEV 工具來實現。經過這種依賴關係,您能夠節省任何更改,嵌入式 tomcat將從新啓動。Spring Boot 有一個開發工具(DevTools)模塊,它有助於提升開發人員的生產力。Java 開發人員面臨的一個主要挑戰是將文件更改自動部署到服務器並自動重啓服務器。開發人員能夠從新加載 Spring Boot 上的更改,而無需從新啓動服務器。這將消除每次手動部署更改的須要。Spring Boot 在發佈它的第一個版本時沒有這個功能。這是開發人員最須要的功能。DevTools 模塊徹底知足開發人員的需求。該模塊將在生產環境中被禁用。它還提供 H2 數據庫控制檯以更好地測試應用程序。
org.springframework.boot spring-boot-devtools true
Spring boot actuator 是 spring 啓動框架中的重要功能之一。Spring boot 監視器可幫助您訪問生產環境中正在運行的應用程序的當前狀態。有幾個指標必須在生產環境中進行檢查和監控。即便一些外部應用程序可能正在使用這些服務來向相關人員觸發警報消息。監視器模塊公開了一組可直接做爲 HTTP URL 訪問的 REST 端點來檢查狀態。
問題六默認狀況下,全部敏感的 HTTP 端點都是安全的,只有具備 ACTUATOR 角色的用戶才能訪問它們。安全性是使用標準的 HttpServletRequest.isUserInRole 方法實施的。 咱們可使用
爲了實現 Spring Boot 的安全性,咱們使用 spring-boot-starter-security 依賴項,而且必須添加安全配置。它只須要不多的代碼。配置類將必須擴展 WebSecurityConfigurerAdapter 並覆蓋其方法。
問題十如何集成 Spring Boot 和 ActiveMQ?
對於集成 Spring Boot 和 ActiveMQ,咱們使用 spring-boot-starter-activemq 依賴關係。 它只須要不多的配置,而且不須要樣板代碼。
Spring Profiles 容許用戶根據配置文件(dev,test,prod 等)來註冊 bean。所以,當應用程序在開發中運行時,只有某些 bean 能夠加載,而在 PRODUCTION 中,某些其餘 bean 能夠加載。假設咱們的要求是 Swagger 文檔僅適用於 QA 環境,而且禁用全部其餘文檔。這可使用配置文件來完成。Spring Boot 使得使用配置文件很是簡單。
問題十四Spring Boot Batch 提供可重用的函數,這些函數在處理大量記錄時很是重要,包括日誌/跟蹤,事務管理,做業處理統計信息,做業從新啓動,跳過和資源管理。它還提供了更先進的技術服務和功能,經過優化和分區技術,能夠實現極高批量和高性能批處理做業。簡單以及複雜的大批量批處理做業能夠高度可擴展的方式利用框架處理重要大量的信息。
問題十五什麼是 FreeMarker 模板?
FreeMarker 是一個基於 Java 的模板引擎,最初專一於使用 MVC 軟件架構進行動態網頁生成。使用 Freemarker 的主要優勢是表示層和業務層的徹底分離。程序員能夠處理應用程序代碼,而設計人員能夠處理 html 頁面設計。最後使用 freemarker 能夠將這些結合起來,給出最終的輸出頁面。
問題十六Spring 提供了一種使用 ControllerAdvice 處理異常的很是有用的方法。 咱們經過實現一個ControlerAdvice類,來處理控制器類拋出的全部異常。
問題十七您使用了哪些 starter maven 依賴項?
使用了下面的一些依賴項
spring-boot-starter-activemq問題十九
什麼是 WebSockets?
Spring Boot 提供監視器端點以監控各個微服務的度量。這些端點對於獲取有關應用程序的信息(如它們是否已啓動)以及它們的組件(如數據庫等)是否正常運行頗有幫助。但是,使用監視器的一個主要缺點或困難是,咱們必須單獨打開應用程序的知識點以瞭解其狀態或健康情況。想象一下涉及 50 個應用程序的微服務,管理員將不得不擊中全部 50 個應用程序的執行終端。