摘要:代碼如下可以看到中一共有個依賴,其中只有是我手動加入的,用于單元測試。點擊項目啟動按鈕,效果如下好的程序必須配備完善的單元測試。測試結果如下可以看到紅圈框住的地方,出現這個綠色標志證明單元測試沒問題。
微信公眾號:一個優秀的廢人前言
如有問題或建議,請后臺留言,我會盡力解決你的問題。
哎呦喂,按照以往的慣例今天周六我的安排應該是待在家學學貓叫啥的。但是今年這種日子就可能一去不復返了,沒法辦法啊。前幾天年輕,立下了一周至少更兩篇文章的 flag 。廢話少說,今天接著前文給你們帶來了第一個 SpringBoot 工程的詳解。
第一個 SpringBoot 工程前文已經說過了 SpringBoot 工程的創建,這里不再贅述,還不會的朋友,請看下面這篇文章。
如何使用 IDEA 構建 Spring Boot 工程
學過編程的都知道,學習一門新語言的第一個項目肯定是 Hello World 。那這里也不例外,我們先創建一個非常簡單的 Hello World 工程。給大家講解 SpringBoot 的項目目錄。創建信息如下:
由于本文重點旨在講解 SpringBoot 的項目目錄。所以選擇的依賴包非常簡單,就選擇 Web 足矣。
SpringBoot 項目目錄詳解創建成功之后的 SpringBoot 項目目錄如下,以下對各主要目錄的作用進行講解:
src 是整個工程的根目錄,基本上做 web 開發你的代碼大部分都放在這里。其中 main 目錄下放置的是你的 Java 代碼;resource 目錄,顧名思義就是放置配置文件、靜態資源( static )以及前端模板( template )。
test 目錄就是放置你的單元測試代碼。
target 就是項目編譯生成的目錄,里面包含代碼編譯后的 class 文件以及一些靜態資源和配置文件。
External Libraries 這里放置了,pom.xml 導入的依賴包。
其他沒提到的目錄都是不重要的。
由上圖項目目錄,可以看到有幾個文件,這些文件有些是我新建的,有些是項目生成的。下面我會講解:
pom.xml 這個文件是整個項目最重要的文件,它包含了整個項目的依賴包。Maven 會根據這個文件導入相關的我們開發需要的依賴包。代碼如下:
可以看到 pom.xml 中一共有 4 個依賴,其中只有 Junit 是我手動加入的,用于單元測試。
其他的如 Spring Boot 啟動父依賴、Spring Boot web依賴 、Spring Boot web test依賴都是創建項目時,勾選 web 選項卡而生成的。這幾個依賴包的額作用就是 內嵌 Tomcat 容器,集成各 Spring 組件。比如 如果沒有依賴 web 包 ,Spring 的兩大核心功能 IOC 和 AOP 將不會生效。
4.0.0 com.nasus helloworld 0.0.1-SNAPSHOT helloworld Demo project for Spring Boot 1.8 org.springframework.boot spring-boot-starter-parent 2.1.1.RELEASE org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test junit junit 4.12 org.springframework.boot spring-boot-maven-plugin
HelloworldApplication.java 最為重要,它由項目生成,是整個工程的應用啟動類 main 函數。代碼由項目生成,代碼如下:SpringApplication 引導應用,并將 HelloworldApplication 本身作為參數傳遞給 run 方法。具體 run 方法會啟動嵌入式的 Tomcat 并初始化 Spring環境及其各 Spring 組件。
需要注意的是,這個類必須放在其他類的上冊目錄,拿上述目錄舉個栗子, 若其他HelloWorldController.java 類位于 com.nasus.controller 下。則 HelloworldApplication.java 類必須放置在 com.nasus 下或者 com 下(層級必須大于其他 java 類)。否則啟動項目訪問會報 Whitelabel Error Page 錯誤,原因是項目掃描不到 @RestController、@RequestMapping 等注解配置的方法和類。
package com.nasus.helloworld; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class HelloworldApplication { public static void main(String[] args) { SpringApplication.run(HelloworldApplication.class, args); } }
HelloWorldController 是我手動編寫的,代碼如下:@RestController 和 @RequestMapping 注解是來自 SpringMVC 的注解,它們不是 SpringBoot 的特定部分。
其中 @RestController 注解的作用是:提供實現了 REST API,可以服務 JSON、XML 或者其他。這里是以 String 的形式渲染出結果。
其中 @RestController 注解的作用是:提供路由信息,"/“路徑的HTTP Request都會被映射到sayHello方法進行處理。
?具體參考,Spring 官方的文檔《Spring Framework Document》
package com.nasus.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * Project Name:helloworld
* Package Name:com.nasus.controller
* Date:2019/1/5 13:59
* Description: TODO: 描述該類的作用
* * @author nasus
* Copyright Notice ========================================================= * This file contains proprietary information of Eastcom Technologies Co. Ltd. * Copying or reproduction without prior written approval is prohibited. * Copyright (c) 2019 ======================================================= */ @RestController public class HelloWorldController { @RequestMapping("/hello") public String sayHello() { return "Hello,World!"; } }
寫完 Controller 層的代碼,我們就可以啟動此項目。點擊 IDEA 項目啟動按鈕,效果如下:
好的程序必須配備完善的單元測試。HelloWorldControllerTest.java 文件是由我編寫的主要作用就是測試 HelloWorldController.java 中的方法。這里用的是 Junit 依賴包進行單元測試,代碼如下:這里的邏輯就是測試 HelloWorldController.java 的 sayHello 方法輸出的字符是否是 Hello,World!
package com.nasus; import static org.junit.Assert.assertEquals; import com.nasus.controller.HelloWorldController; import org.junit.Test; /** * Project Name:helloworld
* Package Name:com.nasus
* Date:2019/1/5 14:01
* Description: TODO: 描述該類的作用
* * @author nasus
* Copyright Notice ========================================================= * This file contains proprietary information of Eastcom Technologies Co. Ltd. * Copying or reproduction without prior written approval is prohibited. * Copyright (c) 2019 ======================================================= */ public class HelloWorldControllerTest { @Test public void testSayHello() { assertEquals("Hello,World!",new HelloWorldController().sayHello()); } }
編寫完成之后,可以通過以下按鈕啟動單元測試類。
測試結果如下:可以看到紅圈框住的地方,出現這個綠色標志證明單元測試沒問題。sayhello 方法的結果是對的。
后語我為什么要寫這種這么簡單的教程?
是這樣的,我始終認為比我聰明的人有很多,但比我笨的人也不少。在中國有很多你認為眾所周知的事,其實有一車人根本不知道,這篇文章哪怕只幫助到一個人,足矣。
之后我打算出一個 SpringBoot 系列的教程,敬請關注與指正,本人也是一個小菜鳥在打怪升級中,如本文有不正確的地方,煩請指正。一起學習一起進步。
以上就是我對 SpringBoot 工程的理解,希望對你們有幫助。最后,對 Python 、Java 感興趣請長按二維碼關注一波,我會努力帶給你們價值,如果覺得本文對你哪怕有一丁點幫助,請幫忙點好看,讓更多人知道。
另外,關注之后在發送 1024 可領取免費學習資料。資料內容詳情請看這篇舊文:Python、C++、Java、Linux、Go、前端、算法資料分享
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/73336.html
摘要:前言如題,今天解析下的配置文件。這時我們就可以用的屬性來配置隨機數,比如隨機字符串隨機隨機以內的隨機數的隨機數使用多配置文件很多時候我們開發項目都需要很多套環境,比如有測試環境,開發環境以及生產環境。原因是,是以的編碼方式讀取配置文件。 微信公眾號:一個優秀的廢人如有問題或建議,請后臺留言,我會盡力解決你的問題。 前言 如題,今天解析下 SpringBoot 的配置文件。 自定義屬性加...
摘要:采納了建立生產就緒應用程序的觀點。優先于配置的慣例,旨在讓您盡快啟動和運行。啟動工程,訪問我們會發現配置文件信息讀到了。三自定義配置文件上面介紹的是我們都把配置文件寫到中。源碼下載五參考文獻干貨系列二配置文件解析屬性配置文件詳解 springboot采納了建立生產就緒Spring應用程序的觀點。 Spring Boot優先于配置的慣例,旨在讓您盡快啟動和運行。在一般情況下,我們不需要做...
閱讀 2556·2023-04-25 20:05
閱讀 2885·2023-04-25 17:56
閱讀 2195·2021-10-14 09:49
閱讀 2679·2019-08-29 15:10
閱讀 2922·2019-08-29 12:25
閱讀 416·2019-08-28 18:23
閱讀 756·2019-08-26 13:26
閱讀 1370·2019-08-23 18:21