天天看點

SpringBoot學習相關面試題

SpringBoot快速開發架構

什麼是SpringBoot

SpringBoot是快速開發的Spring架構,能夠快速整合主流架構,簡化xml配置,采用全注解化,内置Http伺服器(如tomcat、jetty等),通過java部署運作。

為什麼要用SpringBoot

快速開發,快速整合,配置簡化、内嵌服務容器

SpringBoot啟動方式

主類@SpringBootApplication注解或添加@ComponentScan和@EnableAutoConfiguration注解,使用@SpringBootApplication時注意自動掃描目前包

SpringBoot與SpringMVC 差別

SpringMVC是SpringBoot的Web開發架構

SpringBoot與SpringCloud 差別

SpringBoot是快速開發的Spring架構,SpringCloud是完整的微服務架構,       SpringCloud依賴于SpringBoot。

SpringBoot中用那些注解

@EnableAutoConfiguration作用

自動掃描并添加jar包依賴

@SpringBootApplication原理

是一個組合注解,相當于@EnableAutoConfiguration和@ComponentScan

SpringBoot熱部署使用什麼?

devtools

熱部署原理是什麼?

熱部署的實作原理主要依賴java的類加載機制,在實作方式可以概括為在容器啟動的時候起一條背景線程,定時的檢測類檔案的時間戳變化,如果類的時間戳變掉了,則重新加載整個應用的class檔案,同時重新開機服務,重新部署。

熱部署原理與熱加載差別是什麼

熱加載是在運作時重新加載class檔案,不會重新開機服務。

你們項目中異常是如何處理

在web項目中,使用全局捕獲異常傳回統一錯誤資訊。

SpringBoot如何實作異步執行

在啟動類添加@EnableAsync表示開啟對異步任務的支援,在異步服務上添加@Async

SpringBoot多資料源拆分的思路

先在properties配置檔案中配置兩個資料源,建立分包mapper,使用@ConfigurationProperties讀取properties中的配置,使用@MapperScan注冊到對應的mapper包中

SpringBoot多資料源事務如何管理

第一種方式是在service層的@TransactionManager中使用transactionManager指定DataSourceConfig中配置的事務

第二種是使用jta-atomikos實作分布式事務管理

SpringBoot如何實作打包

進入項目目錄在控制台輸入mvn clean package,clean是清空已存在的項目包,package進行打包

SpringBoot性能如何優化

如果項目比較大,類比較多,不使用@SpringBootApplication,采用@Compoment指定掃包範圍

在項目啟動時設定JVM初始記憶體和最大記憶體相同

将springboot内置伺服器由tomcat設定為undertow

SpringBoot執行流程

使用SpringApplication.run()啟動,在該方法所在類添加@SpringBootApplication注解,該注解由@EnableAutoConfiguration和@ComponentScan等注解組成,@EnableAutoConfiguration自動加載SpringBoot配置和依賴包,預設使用@ComponentScan掃描目前包及子包中的所有類,将有spring注解的類交給spring容器管理

SpringBoot底層實作原理

使用maven父子包依賴關系加載相關jar包,使用java操作Spring的初始化過程生成class檔案,然後用java建立tomcat伺服器加載這些class檔案

SpringBoot裝配Bean的原理

通過@EnableAutoConfiguration自動擷取配置類資訊,使用反射執行個體化為spring類,然後加載到spring容器