知識改變命運(yùn),擼碼使我快樂,2020繼續(xù)游走在開源界
點(diǎn)贊再看展运,養(yǎng)成習(xí)慣
給我來個(gè)Star吧活逆,點(diǎn)擊了解下基于SpringBoot的組件化接口服務(wù)落地解決方案
本篇文章是2020年的開篇之作,希望能帶給你不一樣的閱讀體驗(yàn)拗胜,能帶給給你清晰的閱讀思路蔗候。
推薦閱讀
- SpringBoot2.x基礎(chǔ)篇:開發(fā)你的第一個(gè)SpringBoot應(yīng)用程序
- SpringBoot2.x基礎(chǔ)篇:將應(yīng)用程序打包為可執(zhí)行Jar
- SpringBoot2.x基礎(chǔ)篇:Linux后臺運(yùn)行Jar以及Jvm參數(shù)調(diào)優(yōu)
我從2017年開始一直在編寫相關(guān)
SpringBoot
的技術(shù)點(diǎn)使用文章,最開始的版本還是1.5.2
埂软,由于SpringBoot
大小版本發(fā)布的速度太快锈遥,舊版本的文章與新版本SpringBoot
構(gòu)建的應(yīng)用程序存在一定差異,為了讓大家更快的入門學(xué)習(xí)SpringBoot 2.x
版本的核心技術(shù)點(diǎn)勘畔,會(huì)陸續(xù)更新一些基礎(chǔ)知識點(diǎn)的使用文章所灸,基礎(chǔ)文章命名格式:SpringBoot2.x基礎(chǔ)篇:文章標(biāo)題...
開發(fā)環(huán)境
SpringBoot2.x
版本是基于Java8
來編寫的,由于內(nèi)部使用到了很多新的特性炫七,比如:lambda
爬立、interface default
...,所以需要本地開發(fā)環(huán)境有java8
的支持万哪。
不僅如此侠驯,SpringBoot
在構(gòu)建項(xiàng)目時(shí)默認(rèn)使用Maven
方式,所以本地開發(fā)環(huán)境也需要配置Maven
環(huán)境變量奕巍。
~ java -version
java version "1.8.0_231"
Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
~ mvn -version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /Users/yuqiyu/soft/apache-maven-3.6.3
Java version: 1.8.0_231, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "mac os x", version: "10.15.3", arch: "x86_64", family: "mac"
如果你更喜歡使用
Gradle
方式來構(gòu)建項(xiàng)目吟策,那么本地就應(yīng)該Gradle
環(huán)境變量支持。
構(gòu)建工具版本限制使用如下表所示:
構(gòu)建工具 | 版本 |
---|---|
Maven | 3.3+ |
Gradle | 5.x 或 6.x |
新的項(xiàng)目
創(chuàng)建一個(gè)新SpringBoot
應(yīng)用程序的方式有多種:
- 使用IDEA內(nèi)置的
Spring Initializr
創(chuàng)建(File -> New -> Project -> Spring Initializr) - 創(chuàng)建基礎(chǔ)Maven項(xiàng)目的止,修改
pom.xml
添加spring-boot-parent
- 訪問 https://start.spring.io 選擇依賴后檩坚,生成項(xiàng)目并下載
我一般采用第一種方式,這種方式比較快捷诅福,IDEA
內(nèi)部也是通過 https://start.spring.io 這種方式將構(gòu)建完成的zip
文件下載到本地然后解壓匾委,所以你需要連接互聯(lián)網(wǎng)才可以創(chuàng)建項(xiàng)目。
新項(xiàng)目的pom.xml
文件內(nèi)容如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>org.minbox.chapter</groupId>
<artifactId>developing-first-application</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>developing-first-application</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!--添加你需要的依賴...-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
新創(chuàng)建的應(yīng)用程序會(huì)自動(dòng)spring-boot-parent
作為父項(xiàng)目
权谁,這時(shí)我們就擁有了一些默認(rèn)的資源配置、默認(rèn)的依賴版本憋沿、默認(rèn)的插件配置等旺芽。
添加依賴
當(dāng)我們需要項(xiàng)目支持SpringMvc
時(shí),修改pom.xml
文件在添加如下依賴即可:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
添加
spring-boot-starter-web
依賴主要目的是演示Hello World
輸出辐啄。
示例代碼
要完成我們的應(yīng)用程序采章,需要來創(chuàng)建一個(gè)Java
文件,默認(rèn)情況下Maven
會(huì)編譯src/main/java
目錄下的源代碼壶辜,我們可以在該目錄下創(chuàng)建package
來進(jìn)行源代碼的歸類悯舟,下面我們來創(chuàng)建一個(gè)名為HelloExample.java
的示例源代碼文件,內(nèi)容如下所示:
package org.minbox.chapter.developing.first.application;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Hello Example
*
* @author 恒宇少年
*/
@RestController
public class HelloExample {
@GetMapping
public String hello() {
return "hello world!";
}
}
運(yùn)行示例
到目前為止砸民,我們新創(chuàng)建的應(yīng)用程序應(yīng)該可以工作了抵怎,由于應(yīng)用程序的parent
是spring-boot-parent
奋救,因此具有了可運(yùn)行的內(nèi)置環(huán)境支持,可以直接通過命令行的方式來運(yùn)行應(yīng)用程序反惕,當(dāng)我們在應(yīng)用程序的根目錄下輸入命令:
~ developing-first-application ? mvn spring-boot:run
通過Maven
會(huì)將相關(guān)的依賴下載到本地默認(rèn)的依賴倉庫(~/.m2/repository)尝艘,編譯通過后自動(dòng)運(yùn)行項(xiàng)目,控制臺輸出如下所示:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.2.4.RELEASE)
....... . . .
....... . . . (log output here)
....... . . .
........ Started Example in 2.222 seconds (JVM running for 6.514)
當(dāng)看到上面的內(nèi)容在控制臺輸出時(shí)姿染,我們的應(yīng)用程序就已經(jīng)運(yùn)行成功了背亥,在瀏覽器訪問 http://localhost:8080 地址可以看到如下輸出內(nèi)容:
hello world!
如果想要退出運(yùn)行中的應(yīng)用程序,使用
Crtl + C
悬赏。