Spring Boot 快速入門 Helloworld 示例

本文重點

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

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

1.建立(生成)一個Spring Boot標準項目nginx

2.配置Pom.xml文件git

3.編寫示例代碼github

4.編寫測試代碼web

5.運行和調試spring

6.打包發佈docker

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

 

1、Spring Boot 是什麼 

Spring Boot 是Spring 家族成員之一c#

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

  • 爲全部的Spring開發提供一個從根本上更快的和普遍使用的入門經驗
  • 開箱即用,但你能夠經過不採用默認設置來擺脫這種方式
  • 提供一系列大型項目經常使用的非功能性特徵
  • 絕對不須要代碼生成及XML配置

 

2、Spring Boot 有什麼優勢

如下談到我的認爲的幾點

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

2.強大的生態,幾乎沒有什麼功能是須要本身從頭開始開發

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

 

3、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

 

點個讚唄

相關文章
相關標籤/搜索