javascript
springboot 获取项目路径_怎样学习 SpringBoot
學習 SpringBoot 需要做哪些準備?
- IDE:IDEA
- 基礎工具:JDK1.8、Maven
SpringBoot 背景介紹
什么是 SpringBoot
- Spring Boot是 Spring 開源組織下的一個子項目,也是 Spring 組件一站式解決方案,主要是為了簡化使用 Spring 框架的難度,簡省繁重的配置
- Spring Boot提供了各種組件的啟動器(starter),開發者只要能配置好對應組件參數,Spring Boot 就會自動配置,讓開發者能快速搭建依賴于 Spring 組件的 Java 項目
- Spring Boot不但能創建傳統的 war 包應用,還能創建獨立的不依賴于任何外部容器(如:tomcat)的獨立應用,使用 java -jar 命令就能啟動
SpringBoot 的設計目標
- 為 Spring 應用開發提供一個更快、更容易上手的入門體驗
- 提供一系列在經常用到的公共的非功能性特性,如:內嵌入服務器、安全、度量指標、健康檢測、外部化配置
- 零代碼配置生成及零 XML 配置
SpringBoot 包含哪些特性
首先,需要知道,SpringBoot 工程(應用)與普通的 Java/Spring 應用沒有任何區別,或不一樣的實現形式。簡單的說,你只要在 pom 文件中加上了 SpringBoot 所必須的 parent 和相關依賴,這就是一個 SpringBoot 應用。
當你理解了 Spring,學習 SpringBoot,是一件很簡單的事,因為它只是簡化了對 Spring 的使用與配置。除此之外,它也提供了一些功能強大且方便的特性。這里,我介紹一些最為常用的特性。
應用啟動入口
- 注解 @SpringBootApplication
- 三種啟動方式
- SpringApplication 的靜態方法 run
- 通過 SpringApplication 的 Api調整應用行為
- SpringApplicationBuilder 的 Fluent Api,可以實現鏈式調用
自動配置的原理
簡單的說,自動配置就是會根據在類路徑中的jar、類自動配置Bean。Spring Boot將所有的功能場景都抽取出來,做成一個個的starter(啟動器),只需要在項目里面引入這些starter,相關場景的所有依賴都會導入進來。
自動配置的實現是基于三個重要的注解實現的(實際就是 @SpringBootApplication 注解):
- @SpringBootConfiguration 類似于 @Configuration
- @EnableAutoConfiguration 開啟自動配置的功能
- @ComponentScan 掃描注解,掃描 classpath 下的定義的 bean,即 將@Controller、@Service、@Component、@Repository等注解加載到IOC容器中
配置文件優先級
- 同一個目錄下的 application 和 bootstrap
- bootstrap 優先級高于 application,優先被加載
- bootstrap 用于應用程序上下文的引導階段,由父 ApplicationContext 加載
- bootstrap 是系統級別的配置(不變的參數),application 是應用級別的配置
- 不同位置的配置文件加載順序(優先級)
- file:./config/ - 優先級最高(項目根路徑下的 config)
- file:./ - 優先級第二(項目根路徑下)
- classpath:/config/ - 優先級第三(項目 resources/config 下)
- classpath:/ - 優先級第四(項目 resources 目錄下)
- 高優先級覆蓋低優先級相同配置、多個配置文件互補
配置注入的方式
- 直接使用 @Value
- 使用 @ConfigurationProperties + prefix 的方式
Jackson 的使用技巧
通常在項目中處理JSON一般用的都是阿里巴巴的fastjson, 后來發現使用Spring Boot內置的Jackson來完成JSON的序列化和反序列化操作也是非常方便的。
- @JsonProperty,作用在屬性上,用來為JSON Key指定一個別名
- @Jsonlgnore,作用在屬性上,用來忽略此屬性
- @JsonIgnoreProperties,忽略一組屬性,作用于類上
- @JsonFormat,用于日期格式化
- Jackson通過使用ObjectMapper的writeValueAsString方法將Java對象序列化為JSON格式字符串
- 反序列化使用 ObjectMapper 的 readValue
定時任務
在 SpringBoot 中開啟定時任務需要做兩件事:
- @EnableScheduling:允許當前的應用開啟定時任務
- @Scheduled:指定定時任務的運行規則
異步任務
通常代碼都是順序執行(一行一行的執行),這也就是同步調用。但是異步編程卻沒有這樣的限制,代碼執行并不是阻塞的。可以直接調用不用等待返回,而是在某一個想要獲取結果的時間點再去獲取結果。在 SpringBoot 應用中編寫異步代碼:
- 引入spring-boot-starter-web依賴
- 在SpringBoot入口類上加上 @EnableAsync 注解,開啟異步支持
- 只需要在方法上加上 @Async 注解,則當前方法就是異步方法
默認情況下的異步線程池配置使得線程不能被重用,每次調用異步方法都會新建一個線程,我們可以自己定義異步線程池來優化。
單元測試
編寫單元測試可以幫助開發人員編寫高質量的代碼,提升代碼質量,減少Bug,便于重構。SpringBoot提供了一些實用程序和注解,用來幫助我們測試應用程序,在SpringBoot中開啟單元測試只需引入spring-boot-starter-test即可,其包含了一些主流的測試庫。
一個標準的SpringBoot測試用例應該包含兩個注解:
- @SpringBootTest:意思是帶有 SpringBoot 支持的引導程序,其中提供了可以指定 Web 環境的參數
- @RunWith(SpringRunner.class):告訴JUnit運行使用Spring的測試支持。SpringRunner是SpringJUnit4ClassRunner的新名字,這個名字只是讓名字看起來簡單些
······························歡迎關注課程:
基于 SpringCloud 微服務架構下 廣告系統設計與實現
JAVA分布式優惠券系統后臺 手把手實戰開發
作者:張勤一
鏈接:http://www.imooc.com/article/290186
來源:慕課網
本文原創發布于慕課網 ,轉載請注明出處,謝謝合作
總結
以上是生活随笔為你收集整理的springboot 获取项目路径_怎样学习 SpringBoot的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于java的土地档案管理系统设计(含源
- 下一篇: 如何查看服务器gpu性能,ubuntu服