跟着官網學Spring—構建RESTful Web服務

​ 第一篇跟着官網學spring—快速入門指南我們學習瞭如何快速搭建一個項目,以及如何運行,並編寫第一行代碼,接下來我們繼續跟着官網學習Spring中的構件一個RESTful Web服務。

從Spring Initializr開始

​ 還是和上次一樣使用 快速開始創建一個”web“項目。

創建一個形式類

package com.zhonghu.springhelloworlddemo;

public class Greeting {
    private final long id;
    private final String name;

    public Greeting(long id, String name) {
        this.id = id;
        this.name = name;
    }

    public long getId() {
        return id;
    }

    public String getContent() {
        return name;
    }
}

​ 其中包含兩個參數一個是id,表示第幾次訪問,第二是名字表示來訪者的名字。

創建一個資源控制器

​ 在Spring的構件RESTFul Web服務的方法中,HTTP請求由控制器處理,這些組件由@RestController註解標識。用來處理GET請求:/greeting

package com.zhonghu.springhelloworlddemo;

import java.util.concurrent.atomic.AtomicLong;

import com.zhonghu.springhelloworlddemo.Greeting;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class GreetingController {

    private static final String template = "Hello, %s!";
    private final AtomicLong counter = new AtomicLong();

    @GetMapping("/greeting")
    public String greeting(@RequestParam(value = "name", defaultValue = "World") String name) {
        Greeting greeting = new Greeting(counter.incrementAndGet(), String.format(template, name));
        System.out.println(greeting.getContent()+greeting.getId());
        return String.format("您是第"+greeting.getId()+"訪問的,"+greeting.getContent());
    }
}

​ 該控制器作用就是接受一個參數,並且內部有一個累加器,最後將id和那麼輸出到頁面中,在此之前將這兩個參數輸出到命令界面中。

  • @GetMaping 註解可以確保HTTP GET請求到/greeting 被映射到greeting()方法

    其他HTTP動詞也有伴隨註解(例如POST:@PostMaping)。

    另外@RequestMaping它們都有一個註釋,它都是從中衍生的,並且可以用作同義詞(例如@RequestMapping(method=GET))

  • 傳統MVC控制器和RESTful Web服務控制器之間的主要區別在於創建HTTP響應主體的方式。RESTful Web服務器填充並返回一個Greeting對象,而不是依賴於視圖技術來執行向HTML的問候數據的服務器端呈現。對象數據作爲JSON之間寫入HTTP響應

  • @RestController:將類標記爲控制器,其中每個方法均返回域對象而不是視圖。這是同時包含@Controller和@ResponseBody的簡寫

  • 該Creeting對象必須轉化爲JSON,藉助Spring的HTTP消息轉化器支持,無需手動進行此轉化。

  • @SpringBootApplication是一個方便註釋,他添加了一下所有的內容:

    • @Configuration:將類標記爲引用程序上下文的Bean定義的源
    • @EnableAutoConfiguration:告訴Spring Boot根據類路徑設置,其他bean和各種屬性設置開始添加bean。
    • @ComponentScan:告訴Spring在包中尋找其他組件,配置和服務,讓它找到控制器
  • 該main方法使用Spring Boot的SpringApplication.run()方法來啓動應用程序。

生成可以執行的jar文件

​ 直接使用maven

​ 其中:

  • clean:用於清除以前構建(install)生成的所有文件,即清除了Target目錄中的所有文件包括目錄
  • validate:用於驗證項目是否正確
  • compile:編譯項目的源代碼,主要是java文件
  • test:用合適的測試框架來進行測試,測試Compile編譯出來的代碼,測試的東西一般不加包和擴展
  • packaging:獲取compile中編譯好的代碼並將其打包成jar
  • vertify:用來驗證test
  • install:將軟件包安裝到本地存儲庫中。
  • site
  • deploy:複製最終的包到遠程倉庫,共享給其他的開發人員和項目。

啓動以及測試

​ 使用maven中的install,進行打包並安裝到本地存儲庫中。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章