Spring Boot 快速入門 Helloworld 示例


本文重點

Spring Boot 快速入門(Spring Boot 2.0及以上)

如何使用Spring Boot 快速入門 快速創建HelloWorld 項目,主要涉及到

1.創建(生成)一個Spring Boot標准項目

2.配置Pom.xml文件

3.編寫示例代碼

4.編寫測試代碼

5.運行和調試

6.打包發布

本文源碼下載 Github-spring-boot-study-helloword

 

一、Spring Boot 是什么 

Spring Boot 是Spring 家族成員之一

Spring Boot 是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。 該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。下面摘自spring boot中文文檔

  • 為所有的Spring開發提供一個從根本上更快的和廣泛使用的入門經驗
  • 開箱即用,但你可以通過不采用默認設置來擺脫這種方式
  • 提供一系列大型項目常用的非功能性特征
  • 絕對不需要代碼生成及XML配置

 

二、Spring Boot 有什么優點

以下談到個人認為的幾點

1.入門門檻低,只要懂程序的java、c#、php、js都能快速入門

2.強大的生態,幾乎沒有什么功能是需要自己從頭開始開發

3.部署方便,獨立服務器也好、雲部署也好、docker也好都非常方便 

 

三、Spring Boot快速入門HelloWord

一般SpringBoot開發的步驟包括

1.生成一個Spring Boot項目
2.配置Pom.xml
3.編輯代碼
4.編寫測試代碼
5.運行
6.打包發布

  

1. 生成一個Spring Boot項目

這里我們介紹 在瀏覽器中實現一個 http://localhost:8999/hello/say web程序。這里使用IntelliJ IDEA 作為IDE環境來編譯。也可以使用其他IDE。

我們一般采用從IDEA創建Spring Boot項目,見1.2.

1.1 使用start.spring.io創建項目

1)打開https://start.spring.io/

2)選擇構建工具 Maven ProjectJavaSpring Boot 版本 2.1.4 (注意這里文檔版本是2.1.4,但在下面的實踐中2.1.4本地的mvn有問題,后面換成了2.0.0) 、填寫GroupArticfact 及一些工程基本信息,可參考下圖所示:

 

 

如上圖一些英文的含義

groupIdgroupId分為幾個字段,例如com.companyname,前面的com叫【域】,后面的是你自己起的域名。這里是 com.fishpro

artifactId:artifactId一般是項目名或者模塊名。這里是 springstudy

Dependencies:依賴,輸入web,選擇web

 

例如公司名稱:baidu,項目名 peach 那么 groupId=com.baidu artifactId=peach 最終在java項目的基本包名為 com.baidu.peach。當然groupId也可以是com.baidu.look 這種形式,完全有開發者自己定義。

本示例項目 groupId=com.fishpro artifactId=springstudy

 

3)點擊綠色按鈕【Generate Project】生成項目,瀏覽器則自動下載項目,我命名的是springhello,那么下載的是springhello.zip

4)如下圖,下載的位maven項目結構的java項目,使用idea開發工具打開這個文件夾,則會自動加載maven項目。

用 IDEA 打開(open) 文件后,idea自動加載項目的依賴,請稍等片刻,一般在2到5分鍾,這取決於您的網絡和系統性能。

也可以使用 功能,導入文件夾為Maven項目,一路點擊【next】即可。

 

 

5)IDEA 導入Spring Boot 的項目結構,截圖如下:

 

項目結構簡單說明

src/main/java 下是主程序的java代碼存放處

src/resource 是資源文件包括圖片、Css、Javascript等靜態文件和配置文件yml或properties文件

src/test/java 測試代碼

 1 .idea #IDEA 軟件特有的文件夾,隱藏文件 
 2 .mvn #Maven項目特有的文件,隱藏文件
 3 src #存放源碼包括了java代碼和配置文件和資源文件
 4      main #java代碼
 5        java
 6          com
 7            pringbook
 8              SpringstudyApplication #啟動類java文件
 9         resource #資源文件包括靜態文件
10            application.properties #項目的配置文件,比如配置服務器端口等
11      test #測試文件夾
12      mvnw #maven項目輔助文件,自動生成
13      mvnw.cmd #maven項目輔助文件,自動生成
14      pom.xml #maven項目配置文件,類似於C#的web.config
15      study.iml #iml 是IDEA軟件的項目標識文件,一般是自動創建的
16   Externel Libraries #lib文件,這個不用管,是自動的

 

  

1.2 使用IDEA 創建項目

使用IDEA創建項目,其實也是從 https://start.spring.io/ 創建,只是更為方便,我們一般采用從IDEA創建Spring Boot項目。

注意mac和windows的IDEA創建過程是一樣的。

 1)File>New>Project,如下圖選擇Spring Initializr 然后點擊 【Next】下一步

使用IDEA創建Spring Boot 項目1

 

 2)填寫GroupId(包名)、Artifact(項目名) 即可。

groupId=com.fishpro

artifactId=springstudy

 

 

3)選擇依賴,我們選擇Web

 

 

 

2.配置Pom.xml

注意如果生成項目的時候沒有設置Dependencies,選擇web,那么這里要在Pom.xml中設置,Pom.xml設置依賴也非常的簡單,直接把 <dependency></dependency>的節點拷貝到pom依賴節點中即可。

Pom.xml屬於maven項目結構的項目依賴項配置文件,主要管理第三方包的引用。

默認項目配置了spring-boot-starter和spring-boot-starter-test ,配置如下

<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>
        </dependency>
</dependencies>

 

因為示例項目是web項目所以需要引入web模塊,在dependency下增加節點,增加后如下:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

 

注意,如果IDEA沒有自動導入,那么前往右下角,點擊【Import Changes】

有的時候會出問題了!

1.Failed to read artifact descriptor for org.springframework.boot:spring-boot-starter-web:jar:2.1.4.RELEASE less... (⌘F1) 
Inspects a Maven model for resolution problems.

未能加載spring-boot-starter-web:jar,這個應該是mvn管理器加載問題。去掉里面依賴

 答:spring boot 2.1.4的mvn有問題,改成2.0.0就好了。當然這可能是其他原因,我使用IDEA創建的項目就沒有這個問題。

 

 

  

3.編寫代碼

3.1 Web項目的常用目錄結構

通常,我們使用三層結構來編寫。

應用層(Controller)、服務層(Service)、數據層(Dao)

我們也增加對應的包目錄。

3.2 增加Controller包

1)在本示例中,右鍵springstudy包名,新建包名 controller (注意一般是消息)

2)在controller下新建HelloWorldController.java (注意首字母大寫)

3)在HelloWorldController中增加java代碼

@RestController
@RequestMapping("/hello")
public class HelloWorldController {
    @RequestMapping("/say")
    public String say(){
        return "Hello World";
    }
}

 

  

3.3 更改Web端口

因我的系統端口默認8080倍nginx占領了,我把本次項目的啟動端口改為8999

在 resources\application.properties 中設置(注意有的網絡教程中是 application.yml 其實這是另一種配置文件格式,就想json和xml 只是格式不同,功能作用一樣

#設置端口號
server.port=8999

 

   

4.編寫測試代碼

測試代碼在 src\test\java下面編寫

1)在本示例中,右鍵 src\test\java\com\fishpro\springstudy包名,新建包名 controller (注意一般是消息)

2)在controller下新建HelloWorldControllerTests.java (注意對應於main下,一般后綴Tests)

3)在HelloWorldControllerTests中增加java代碼

package com.fishpro.springstudy.controller;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;

@RunWith(SpringRunner.class)
@SpringBootTest
public class HelloWorldControllerTests {
    private MockMvc mockMvc;
    @Before
    public void setUp() throws Exception {
        mockMvc = MockMvcBuilders.standaloneSetup(new HelloWorldController()).build();
    }

    @Test
    public void getHello() throws Exception {
        mockMvc.perform(MockMvcRequestBuilders.get("/hello/say").accept(MediaType.APPLICATION_JSON))
                .andExpect(MockMvcResultMatchers.status().isOk())
                .andDo(MockMvcResultHandlers.print())
                .andReturn();
    }
}

 

  

5.運行

5.1 運行程序或調試程序

點擊右上角,綠色運行三角形按鈕,啟動運行,或點擊它旁邊的爬蟲按鈕,進行調試。

或者點擊菜單

Run>Run 'SpringstudyApplication'
Run>Debug 'SpringstudyApplication'

 

 

瀏覽器輸入 http://localhost:8999/hello/say

 

5.2 運行測試用例

右鍵HelloWorldControllerTests.java 選擇Run 'HelloWorldControllerTests' with Coverage

 

 

6.打包發布

通常我們一jar方式打包發布,war方式用於單獨的發布到已有的tomcat web服務器中,以后的實踐中再講。

1)選擇 View> Tool Windows>Terminal

2)輸入命令

mvn clean

mvn install 

 

 

  

在根目錄下有個target 文件夾,

 

 3)模擬服務器環境,運行jar文件,輸入命令,后則可以在瀏覽器中得到結果。

java -jar springstudy-0.0.1-SNAPSHOT.jar

 

  

總之,Spring Boot是一個優秀的實戰型框架,他既簡單又強大。

問題

1.Failed to read artifact descriptor for org.springframework.boot:spring-boot-starter-web:jar:2.1.4.RELEASE less... (⌘F1)
Inspects a Maven model for resolution problems.

未能加載spring-boot-starter-web:jar,這個應該是mvn管理器加載問題。

2.端口問題

默認是8080端口,如果端口被占用了(例如mac的nginx默認是8080),需要修改,那么在 resources\application.properties中設置

#設置端口號
server.port=8999

 

  

源碼下載

 本文源碼下載Github-spring-boot-study-helloword

 

點個贊唄

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM