javascript
springboot java获取版本号_深入实践Spring Boot 实战篇,大佬整理出的PDF文档
如何使用Spring Boot
本文章將會詳細介紹如何使用Spring Boot。它覆蓋了構建系統,自動配置和運行/部署選項等主題。我們也覆蓋了一些Spring Boot最佳實踐。盡管Spring Boot沒有什么特別的(只是一個你能消費的庫),但仍有一些建議,如果你遵循的話將會讓你的 開發進程更容易。 如果你剛接觸Spring Boot,那最好先了解一下
構建系統
強烈建議你選擇一個支持依賴管理,能消費發布到Maven中央倉庫的artifacts的構建系統。我們推薦你選擇Maven或Gradle。
選擇其他構建系統來使用Spring Boot也是可能的(比如Ant),但它們不會被很好的支持。
Maven
Maven用戶可以繼承 spring-boot-starter-parent 項目來獲取合適的默認設置。該父項目提供以下特性:
默認編譯級別為Java 1.6
源碼編碼為UTF-8
一個依賴管理節點,允許你省略普通依賴的 標簽,繼承自 spring-boot-dependencies POM。
合適的資源過濾
合適的插件配置(exec插件,surefire,Git commit ID,shade)
針對 application.properties 和 application.yml 的資源過濾
最后一點:由于默認配置文件接收Spring風格的占位符( ${...} ),Maven filtering改用 @..@ 占位符(你可以使用Maven屬 性 resource.delimiter 來覆蓋它)。
繼承starter parent
想配置你的項目繼承 spring-boot-starter-parent 只需要簡單地設置 parent 為:
注:你應該只需要在該依賴上指定Spring Boot版本。如果導入其他的starters,你可以放心的省略版本號。
使用沒有父POM的Spring Boot
不是每個人都喜歡繼承 spring-boot-starter-parent POM。你可能需要使用公司標準parent,或你可能傾向于顯式聲明所有
Maven配置
如果你不使用 spring-boot-starter-parent ,通過使用一個 scope=import 的依賴,你仍能獲取到依賴管理的好處:
改變Java版本
使用Spring Boot Maven插件
Gradle
Gradle用戶可以直接在它們的 dependencies 節點處導入”starter POMs“。跟Maven不同的是,這里沒有用于導入共享配置 的"超父"(super parent)。
spring-boot-gradle-plugin插件也是可以使用的,它提供創建可執行jar和從source運行項目的任務。它也添加了一 個 ResolutionStrategy 用于讓你省略常用依賴的版本號:
Ant
使用Apache Ant構建一個Spring Boot項目是完全可能的,然而,Spring Boot沒有為它提供特殊的支持或插件。Ant腳本可以 使用Ivy依賴管理系統來導入starter POMs
Starter POMs
Starter POMs是可以包含到應用中的一個方便的依賴關系描述符集合。你可以獲取所有Spring及相關技術的一站式服務,而 不需要翻閱示例代碼,拷貝粘貼大量的依賴描述符。例如,如果你想使用Spring和JPA進行數據庫訪問,只需要在你的項目
中包含 spring-boot-starter-data-jpa 依賴,然后你就可以開始了。
該starters包含很多你搭建項目,快速運行所需的依賴,并提供一致的,管理的傳遞依賴集。
名字有什么含義:所有的starters遵循一個相似的命名模式: spring-boot-starter-* ,在這里 * 是一種特殊類型的應用程序。
該命名結構旨在幫你找到需要的starter。很多IDEs集成的Maven允許你通過名稱搜索依賴。例如,使用相應的Eclipse或STS
插件,你可以簡單地在POM編輯器中點擊 ctrl-space ,然后輸入"spring-boot-starter"可以獲取一個完整列表。
下面的應用程序starters是Spring Boot在 org.springframework.boot 組下提供的:
表 13.1. Spring Boot application starters
除了應用程序的starters,下面的starters可以用于添加生產準備的特性。
Spring Boot生產準備的starters
最后,Spring Boot包含一些可用于排除或交換具體技術方面的starters。
Spring Boot technical starters
注:查看GitHub上位于 spring-boot-starters 模塊內的README文件,
組織你的代碼
Spring Boot不需要使用任何特殊的代碼結構,然而,這里有一些有用的最佳實踐。
使用"default"包
當類沒有包含 package 聲明時,它被認為處于 default package 下。通常不推薦使用 default package ,并應該避免使用它。因
為對于使用 @ComponentScan , @EntityScan 或 @SpringBootApplication 注解的Spring Boot應用來說,來自每個jar的類都會被讀 取,這會造成一定的問題。
注:我們建議你遵循Java推薦的包命名規范,使用一個反轉的域名(例如 com.example.project )。
定位main應用類
我們通常建議你將main應用類放在位于其他類上面的根包(root package)中。通常使用 @EnableAutoConfiguration 注解你的 main類,并且暗地里為某些項定義了一個基礎“search package”。例如,如果你正在編寫一個JPA應用,
被 @EnableAutoConfiguration 注解的類所在包將被用來搜索 @Entity 項。
使用根包允許你使用 @ComponentScan 注解而不需要定義一個 basePackage 屬性。如果main類位于根包中,你也可以使 用 @SpringBootApplication 注解。
下面是一個典型的結構:
Application.java 文件將聲明 main 方法,還有基本的 @Configuration 。
配置類
Spring Boot提倡基于Java的配置。盡管你可以使用一個XML源來調用 SpringApplication.run() ,我們通常建議你使 用 @Configuration 類作為主要源。一般定義 main 方法的類也是主要 @Configuration 的一個很好候選。
注:很多使用XML配置的Spring配置示例已經被發布到網絡上。你應該總是盡可能的使用基于Java的配置。搜索查 看 enable* 注解就是一個好的開端。
導入其他配置類
你不需要將所有的 @Configuration 放進一個單獨的類。 @Import 注解可以用來導入其他配置類。另外,你也可以使 用 @ComponentScan 注解自動收集所有的Spring組件,包括 @Configuration 類。
導入XML配置
如果你絕對需要使用基于XML的配置,我們建議你仍舊從一個 @Configuration 類開始。你可以使用附加的 @ImportResource 注 解加載XML配置文件。
自動配置
Spring Boot自動配置(auto-configuration)嘗試根據你添加的jar依賴自動配置你的Spring應用。例如,如果你的classpath下
存在 HSQLDB ,并且你沒有手動配置任何數據庫連接beans,那么我們將自動配置一個內存型(in-memory)數據庫。
你可以通過將 @EnableAutoConfiguration 或 @SpringBootApplication 注解添加到一個 @Configuration 類上來選擇自動配置。
注:你只需要添加一個 @EnableAutoConfiguration 注解。我們建議你將它添加到主 @Configuration 類上
Spring Beans和依賴注入
你可以自由地使用任何標準的Spring框架技術去定義beans和它們注入的依賴。簡單起見,我們經常使用 @ComponentScan 注解 。
搜索beans,并結合 @Autowired 構造器注入。
如果使用上面建議的結構組織代碼(將應用類放到根包下),你可以添加 @ComponentScan 注解而不需要任何參數。你的所有 應用程序組件( @Component , @Service , @Repository , @Controller 等)將被自動注冊為Spring Beans。
下面是一個 @Service Bean的示例,它使用構建器注入獲取一個需要的 RiskAssessor bean。
注:注意如何使用構建器注入來允許 riskAssessor 字段被標記為 final ,這意味著 riskAssessor 后續是不能改變的。
使用@SpringBootApplication注解
很多Spring Boot開發者總是使用 @Configuration , @EnableAutoConfiguration 和 @ComponentScan 注解他們的main類。由于這些
注解被如此頻繁地一塊使用(特別是你遵循以上最佳實踐時),Spring Boot提供一個方便的 @SpringBootApplication 選擇。
該 @SpringBootApplication 注解等價于以默認屬性使用 @Configuration , @EnableAutoConfiguration 和 @ComponentScan 。
運行應用程序
將應用打包成jar并使用一個內嵌HTTP服務器的一個最大好處是,你可以像其他方式那樣運行你的應用程序。調試Spring Boot應用也很簡單;你不需要任何特殊IDE或擴展。
注:本章節只覆蓋基于jar的打包,如果選擇將應用打包成war文件,你最好參考一下服務器和IDE文檔。
作為一個打包后的應用運行
使用Maven插件運行
使用Gradle插件運行
熱交換
由于Spring Boot應用程序只是普通的Java應用,那JVM熱交換(hot-swapping)應該能出色的工作。JVM熱交換在它能替換 。
的字節碼上有些限制,更全面的解決方案可以使用Spring Loaded項目或JRebel。
打包用于生產的應用程序 。
可執行jars可用于生產部署。由于它們是自包含的,非常適合基于云的部署。關于其他“生產準備”的特性,比如健康監控,審 計和指標REST,或JMX端點,可以考慮添加 spring-boot-actuator 。具體參考Part V, “Spring Boot Actuator: Productionready features”。
除了Spring Boot的使用方式外還有Spring Boot特性、執行器、CLI、需要了解的可以私信我.
Spring Boot特性舉個例子
開發Wed應用
Spring Boot非常適合開發web應用程序。你可以使用內嵌的Tomcat,Jetty或Undertow輕輕松松地創建一個HTTP服務器。大 多數的web應用都使用spring-boot-starter-web模塊進行快速搭建和運行。
Spring Web MVC框架 Spring Web MVC框架(通常簡稱為"Spring MVC")是一個富"模型,視圖,控制器"的web框架。 Spring MVC允許你創建特
定的@Controller或@RestController beans來處理傳入的HTTP請求。 使用@RequestMapping注解可以將控制器中的方法映 射到相應的HTTP請求。
示例:
HttpMessageConverters
Spring MVC使用HttpMessageConverter接口轉換HTTP請求和響應。合理的缺省值被包含的恰到好處(out of the box),例 如對象可以自動轉換為JSON(使用Jackson庫)或XML(如果Jackson XML擴展可用則使用它,否則使用JAXB)。字符串 默認使用UTF-8編碼。
如果需要添加或自定義轉換器,你可以使用Spring Boot的HttpMessageConverters類:
需要這份Spring Bootpdf文檔的朋友們轉發收藏+關注私信“資料”立即獲取
總結
以上是生活随笔為你收集整理的springboot java获取版本号_深入实践Spring Boot 实战篇,大佬整理出的PDF文档的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人世间原著里每个人物的结局(原著里18位
- 下一篇: springboot异步注解_Sprin