摘要:代碼如下可以看到中一共有個(gè)依賴,其中只有是我手動(dòng)加入的,用于單元測(cè)試。點(diǎn)擊項(xiàng)目啟動(dòng)按鈕,效果如下好的程序必須配備完善的單元測(cè)試。測(cè)試結(jié)果如下可以看到紅圈框住的地方,出現(xiàn)這個(gè)綠色標(biāo)志證明單元測(cè)試沒(méi)問(wèn)題。
微信公眾號(hào):一個(gè)優(yōu)秀的廢人前言
如有問(wèn)題或建議,請(qǐng)后臺(tái)留言,我會(huì)盡力解決你的問(wèn)題。
哎呦喂,按照以往的慣例今天周六我的安排應(yīng)該是待在家學(xué)學(xué)貓叫啥的。但是今年這種日子就可能一去不復(fù)返了,沒(méi)法辦法啊。前幾天年輕,立下了一周至少更兩篇文章的 flag 。廢話少說(shuō),今天接著前文給你們帶來(lái)了第一個(gè) SpringBoot 工程的詳解。
第一個(gè) SpringBoot 工程前文已經(jīng)說(shuō)過(guò)了 SpringBoot 工程的創(chuàng)建,這里不再贅述,還不會(huì)的朋友,請(qǐng)看下面這篇文章。
如何使用 IDEA 構(gòu)建 Spring Boot 工程
學(xué)過(guò)編程的都知道,學(xué)習(xí)一門(mén)新語(yǔ)言的第一個(gè)項(xiàng)目肯定是 Hello World 。那這里也不例外,我們先創(chuàng)建一個(gè)非常簡(jiǎn)單的 Hello World 工程。給大家講解 SpringBoot 的項(xiàng)目目錄。創(chuàng)建信息如下:
由于本文重點(diǎn)旨在講解 SpringBoot 的項(xiàng)目目錄。所以選擇的依賴包非常簡(jiǎn)單,就選擇 Web 足矣。
SpringBoot 項(xiàng)目目錄詳解創(chuàng)建成功之后的 SpringBoot 項(xiàng)目目錄如下,以下對(duì)各主要目錄的作用進(jìn)行講解:
src 是整個(gè)工程的根目錄,基本上做 web 開(kāi)發(fā)你的代碼大部分都放在這里。其中 main 目錄下放置的是你的 Java 代碼;resource 目錄,顧名思義就是放置配置文件、靜態(tài)資源( static )以及前端模板( template )。
test 目錄就是放置你的單元測(cè)試代碼。
target 就是項(xiàng)目編譯生成的目錄,里面包含代碼編譯后的 class 文件以及一些靜態(tài)資源和配置文件。
External Libraries 這里放置了,pom.xml 導(dǎo)入的依賴包。
其他沒(méi)提到的目錄都是不重要的。
由上圖項(xiàng)目目錄,可以看到有幾個(gè)文件,這些文件有些是我新建的,有些是項(xiàng)目生成的。下面我會(huì)講解:
pom.xml 這個(gè)文件是整個(gè)項(xiàng)目最重要的文件,它包含了整個(gè)項(xiàng)目的依賴包。Maven 會(huì)根據(jù)這個(gè)文件導(dǎo)入相關(guān)的我們開(kāi)發(fā)需要的依賴包。代碼如下:
可以看到 pom.xml 中一共有 4 個(gè)依賴,其中只有 Junit 是我手動(dòng)加入的,用于單元測(cè)試。
其他的如 Spring Boot 啟動(dòng)父依賴、Spring Boot web依賴 、Spring Boot web test依賴都是創(chuàng)建項(xiàng)目時(shí),勾選 web 選項(xiàng)卡而生成的。這幾個(gè)依賴包的額作用就是 內(nèi)嵌 Tomcat 容器,集成各 Spring 組件。比如 如果沒(méi)有依賴 web 包 ,Spring 的兩大核心功能 IOC 和 AOP 將不會(huì)生效。
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 最為重要,它由項(xiàng)目生成,是整個(gè)工程的應(yīng)用啟動(dòng)類 main 函數(shù)。代碼由項(xiàng)目生成,代碼如下:SpringApplication 引導(dǎo)應(yīng)用,并將 HelloworldApplication 本身作為參數(shù)傳遞給 run 方法。具體 run 方法會(huì)啟動(dòng)嵌入式的 Tomcat 并初始化 Spring環(huán)境及其各 Spring 組件。
需要注意的是,這個(gè)類必須放在其他類的上冊(cè)目錄,拿上述目錄舉個(gè)栗子, 若其他HelloWorldController.java 類位于 com.nasus.controller 下。則 HelloworldApplication.java 類必須放置在 com.nasus 下或者 com 下(層級(jí)必須大于其他 java 類)。否則啟動(dòng)項(xiàng)目訪問(wèn)會(huì)報(bào) Whitelabel Error Page 錯(cuò)誤,原因是項(xiàng)目掃描不到 @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 是我手動(dòng)編寫(xiě)的,代碼如下:@RestController 和 @RequestMapping 注解是來(lái)自 SpringMVC 的注解,它們不是 SpringBoot 的特定部分。
其中 @RestController 注解的作用是:提供實(shí)現(xiàn)了 REST API,可以服務(wù) JSON、XML 或者其他。這里是以 String 的形式渲染出結(jié)果。
其中 @RestController 注解的作用是:提供路由信息,"/“路徑的HTTP Request都會(huì)被映射到sayHello方法進(jìn)行處理。
?具體參考,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!"; } }
寫(xiě)完 Controller 層的代碼,我們就可以啟動(dòng)此項(xiàng)目。點(diǎn)擊 IDEA 項(xiàng)目啟動(dòng)按鈕,效果如下:
好的程序必須配備完善的單元測(cè)試。HelloWorldControllerTest.java 文件是由我編寫(xiě)的主要作用就是測(cè)試 HelloWorldController.java 中的方法。這里用的是 Junit 依賴包進(jìn)行單元測(cè)試,代碼如下:這里的邏輯就是測(cè)試 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()); } }
編寫(xiě)完成之后,可以通過(guò)以下按鈕啟動(dòng)單元測(cè)試類。
測(cè)試結(jié)果如下:可以看到紅圈框住的地方,出現(xiàn)這個(gè)綠色標(biāo)志證明單元測(cè)試沒(méi)問(wèn)題。sayhello 方法的結(jié)果是對(duì)的。
后語(yǔ)我為什么要寫(xiě)這種這么簡(jiǎn)單的教程?
是這樣的,我始終認(rèn)為比我聰明的人有很多,但比我笨的人也不少。在中國(guó)有很多你認(rèn)為眾所周知的事,其實(shí)有一車(chē)人根本不知道,這篇文章哪怕只幫助到一個(gè)人,足矣。
之后我打算出一個(gè) SpringBoot 系列的教程,敬請(qǐng)關(guān)注與指正,本人也是一個(gè)小菜鳥(niǎo)在打怪升級(jí)中,如本文有不正確的地方,煩請(qǐng)指正。一起學(xué)習(xí)一起進(jìn)步。
以上就是我對(duì) SpringBoot 工程的理解,希望對(duì)你們有幫助。最后,對(duì) Python 、Java 感興趣請(qǐng)長(zhǎng)按二維碼關(guān)注一波,我會(huì)努力帶給你們價(jià)值,如果覺(jué)得本文對(duì)你哪怕有一丁點(diǎn)幫助,請(qǐng)幫忙點(diǎn)好看,讓更多人知道。
另外,關(guān)注之后在發(fā)送 1024 可領(lǐng)取免費(fèi)學(xué)習(xí)資料。資料內(nèi)容詳情請(qǐng)看這篇舊文:Python、C++、Java、Linux、Go、前端、算法資料分享
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/73336.html
摘要:前言如題,今天解析下的配置文件。這時(shí)我們就可以用的屬性來(lái)配置隨機(jī)數(shù),比如隨機(jī)字符串隨機(jī)隨機(jī)以內(nèi)的隨機(jī)數(shù)的隨機(jī)數(shù)使用多配置文件很多時(shí)候我們開(kāi)發(fā)項(xiàng)目都需要很多套環(huán)境,比如有測(cè)試環(huán)境,開(kāi)發(fā)環(huán)境以及生產(chǎn)環(huán)境。原因是,是以的編碼方式讀取配置文件。 微信公眾號(hào):一個(gè)優(yōu)秀的廢人如有問(wèn)題或建議,請(qǐng)后臺(tái)留言,我會(huì)盡力解決你的問(wèn)題。 前言 如題,今天解析下 SpringBoot 的配置文件。 自定義屬性加...
摘要:采納了建立生產(chǎn)就緒應(yīng)用程序的觀點(diǎn)。優(yōu)先于配置的慣例,旨在讓您盡快啟動(dòng)和運(yùn)行。啟動(dòng)工程,訪問(wèn)我們會(huì)發(fā)現(xiàn)配置文件信息讀到了。三自定義配置文件上面介紹的是我們都把配置文件寫(xiě)到中。源碼下載五參考文獻(xiàn)干貨系列二配置文件解析屬性配置文件詳解 springboot采納了建立生產(chǎn)就緒Spring應(yīng)用程序的觀點(diǎn)。 Spring Boot優(yōu)先于配置的慣例,旨在讓您盡快啟動(dòng)和運(yùn)行。在一般情況下,我們不需要做...
閱讀 2572·2023-04-25 20:05
閱讀 2896·2023-04-25 17:56
閱讀 2210·2021-10-14 09:49
閱讀 2696·2019-08-29 15:10
閱讀 2930·2019-08-29 12:25
閱讀 428·2019-08-28 18:23
閱讀 765·2019-08-26 13:26
閱讀 1381·2019-08-23 18:21