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容器