1. 程式人生 > >002SpringBoot來個HelloWord

002SpringBoot來個HelloWord

接上一篇001SpringBoot構建專案

 

1、建立HelloController類

在目錄 src\main\java\com\neo\web 下建立 HelloController:

@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String hello() {
        return "hello world";
    }

}
  • @RestController 的意思是 Controller 裡面的方法都以 JSON 格式輸出,不需要有其他額外的配置;如果配置為 @Controller,代表輸出內容到頁面。
  • @RequestMapping("/hello") 提供路由資訊,"/hello" 路徑的 HTTP Request 都會被對映到 hello() 方法上進行處理。

2、啟動主程式

右鍵單擊專案中的 HelloApplication | run 命令,就可以啟動專案了,若出現以下內容表示啟動成功:

2018-09-19 13:33:57.801  INFO 32996 --- [  restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2018-09-19 13:33:57.802  INFO 32996 --- [  restartedMain] com.neo.hello.HelloApplication           : Started HelloApplication in 0.88 seconds 

如果啟動過程中出現 java ClassNotFoundException 異常,請檢查 Maven 配置是否正確,具體如下。

  • 檢查 Maven 的 settings.xml 檔案是否引入正確,請參考模板 settings.xml 檔案
  • 檢查 IDE 工具中的 Maven 外掛是否配置為本機的 Maven 地址,如下圖:

Spring Boot 還提供了另外兩種啟動專案的方式:

  • 在專案路徑下,使用命令列 mvn spring-boot:run 來啟動,其效果和上面“啟動主程式”的效果是一致的;
  • 或者將專案打包,打包後以 Jar 包的形式來啟動。
# 進行專案根目錄
cd ../hello
# 執行打包命令
mvn clean package
# 以 Jar 包的形式啟動
java -jar target/hello-0.0.1-SNAPSHOT.jar

啟動成功後,開啟瀏覽器輸入網址:http://localhost:8080/hello,就可以看到以下內容了:

hello world

開發階段建議使用第一種方式啟動,便於開發過程中除錯。

3、如果我們想傳入引數怎麼辦?

請求傳參一般分為 URL 地址傳參和表單傳參兩種方式,兩者各有優缺點,但基本都以鍵值對的方式將引數傳遞到後端。作為後端程式不用關注前端採用的那種方式,只需要根據引數的鍵來獲取值,Spring 提供了很多種引數接收方式,今天我們瞭解最簡單的方式:通過 URL 傳參。

只要後端處理請求的方法中存在引數鍵相同名稱的屬性,在請求的過程中 Spring 會自動將引數值賦值到屬性中,最後在方法中直接使用即可。下面我們以 hello() 為例進行演示。

@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String hello(String name) {
        return "hello world, " +name;
    }
}

重新啟動專案,開啟瀏覽器輸入網址 http://localhost:8080/hello?name=neo,返回如下內容。

hello world,neo

到這裡,我們的第一個 Spring Boot 專案就開發完成了,有沒有感覺很簡單?經過測試發現,修改 Controller 內相關的程式碼,需要重新啟動專案才能生效,這樣做很麻煩是不是?彆著急,Spring Boot 又給我們提供了另外一個元件來解決。