為什麼使用Spring Boot?
為什麼要使用Spring Boot?
在使用Spring框架進行開發的過程中,需要配置很多Spring框架包的依賴,如spring-core、spring-bean、spring-context等,而這些配置通常都是重複新增的,而且需要做很多框架使用及環境引數的重複配置,如開啟註解、配置日誌等。自動配置:spring boot能夠根據當前類路徑下的類,jar包來自動配置bean,如新增一個spring-boot-starter-web啟動器就能擁有web的功能,無需其他配置、無程式碼生成和XML配置:spring boot配置過程中無程式碼生成,也無XML配置就能完成所有的配置工作,這一切都是藉助於條件註解完成的,這也是spring4.x的核心功能之一。 還有應用監控:spring boot提供一系列端點可以監控服務和應用,做健康檢查
Spring Boot是微服務的框架嗎?
Spring Boot是Spring家族的成員,它是一個全新的框架,它的設計目的是儘可能簡單和快速的開發、執行Spring應用程式,簡化配置。它為開發者快捷的使用Spring及相關開發框架提供了便利,但是它並不是微服務的框架,它只是為微服務框架的使用也提供了很好的腳手架。
Spring Boot中的Starter是什麼?
Spring Boot中的Starter是一個包含很多依賴描述的集合,只要新增一個Starter,這個Starter裡面約定的依賴都會被新增到專案中,例如程式碼添加了spring-boot-starter-web,執行maven操作就會下載web應用需要的依賴jar。開發者通過使用這些Starter可以快速的搭建開發環境,自動載入所需要的依賴和配置引數屬性。
使用Spring Boot快速搭建開發環境,是不是需要從無到有手動搭建?
如果想快速搭建專案開發環境,可以通過Spring Initializr[http://start.spring.io/]引導快速構建專案。最近阿里也開源了Aliyun Java Initializr[http://start.aliyun.com/],也可以通過它的引導快速構建Java專案。
Spring Boot中@EnableAutoConfiguration註解有什麼作用?
@EnableAutoConfiguration註解從字面上理解是開啟自動配置,在@EnableAutoConfiguration註解的定義中使用了@Import註解,使用@Import匯入
EnableAutoConfigurationImportSelector.class,作用等同於在Spring的xml檔案中使用
那這個自動化配置是如何觸發的?
ConfigurationClassPostProcessor類的postProcessBeanFactory方法中呼叫了ConfigurationClassParser類的parse方法,而ConfigurationClassParser類的parse方法間接呼叫了AutoConfigurationImportSelector類。這個ConfigurationClassPostProcessor實現了BeanDefinitionRegistryPostProcessor介面,而BeanDefinitionRegistryPostProcessor繼承了BeanFactoryPostProcessor介面,熟悉Spring原理的都知道BeanFactoryPostProcessor介面中的postProcessBeanFactory方法會在Spring容器載入bean的定義檔案之後,在bean例項化之前執行,而這一步是由SpringApplication的run方法觸發的,在這個run方法中實現了Spring容器的啟動及初始化。
有些開發者會在pom.xml中繼承spring-boot-starter-parent,這樣做有什麼好處?
通過繼承的方式可以很方便的進行依賴版本管理,使用預設的依賴版本,當然也可以更改這些依賴的版本號。繼承
spring-boot-starter-parent可以獲取以下預設特性:
預設使用Java1.6進行編譯;
預設程式碼編碼為UTF-8;
新建專案的pom檔案可以省略依賴庫的
Spring Boot中如何實現對不同環境的屬性配置檔案的支援?
Spring-Boot支援不同環境的屬性配置檔案切換,通過建立application-{profile}.properties檔案,其中{profile}是具體的環境標識名稱,例如: application-dev.properties用於開發環境,application-test.properties用於測試環境,application-uat.properties用於uat環境。如果要想使用application-dev.properties檔案,則在application.properties檔案中新增spring.profiles.active=dev;如果要想使用application-test.properties檔案,則在application.properties檔案中新增spring.profiles.active=test。
打包部署都手動修改application.properties中spring.profiles.active的值,這個問題如何解決?
一般的做法是在專案路徑下建立以環境標識名稱為名的目錄,然後每個目錄下新增各自環境的application.properties屬性配置,在自動打包部署的時候將對應的application.properties拷貝到classpath下,這樣就實現了配置檔案切換。
Spring Boot會自動載入哪些路徑下的application.properties?
Spring Boot支援從以下位置載入application.properties檔案:當前目錄下的/config子目錄、當前目錄、classpath下的/config包、classpath根路徑。
如果這四個路徑的application.properties檔案中配置了某屬性,最終生效的是哪個檔案裡的?
最終生效的是當前目錄下的/config子目錄下的application.properties中的配置,覆蓋順序是當前目錄下的/config子目錄覆蓋當前目錄,當前目錄覆蓋classpath下的/config包,classpath下的/config包覆蓋classpath根路徑。
@SpringBootApplication註解有什麼作用?
從@SpringBootApplication註解原始碼可以看到它具有@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan三個註解的作用。@SpringBootConfiguration註解用於標註Spring應用引導類,在應用啟動的時候這個引導類會被執行;@EnableAutoConfiguration註解用於根據依賴自動開啟一些配置;@ComponentScan註解用於配置哪些基礎包或類被自動掃描。
- 從解碼渲染層面對比 PAG 與 lottie
- 基於java springboot的圖書管理系統設計和實現《建議收藏》
- 基於java SpringBoot框架蛋糕銷售商城管理系統詳細設計
- 端午節分享一個基於Java的線上學習平臺系統詳細設計
- 基於Java SpringBoot vue element實現企業門戶管理系統詳細設計和實現
- 強大的SQL計算利器-SPL
- 程式設計師週末寫了個javaSpring vue的機械產品裝置流程管理系統
- Oracle12C配置監聽IP地址
- 程式設計師週末寫了個javaSpringBoot vue的疫情社群管理平臺
- Java專案中列舉定義以及使用
- SpringBoot整合Druid資料來源
- 享譽全球的 Java 經典著作《Java核心技術》Java 17
- MD5演算法原理實現以及常用方法彙總
- 基於Java體育館場內設施預約系統設計
- SpringBoot統一封裝返回前端結果集
- Java基礎課程設計-模擬ATM銀行管理系統《控制檯版本》
- Java基礎課程設計-學生管理系統《控制檯版本》
- 為什麼使用Spring Boot?
- 基於Java的個人交友網站系統詳細設計
- 基於Java的高校網上報銷平臺系統詳細設計