1. 程式人生 > >搭建簡單的Restful風格的web服務

搭建簡單的Restful風格的web服務

筆者最近在學習Spring相關的知識,堅信一句話,任何教程都沒有官網教程全面、易懂,所以筆者計劃參照官網的教程寫一些例子,自己學習一下,也做下記錄,由於官方教程大部分都是基於Spring boot,所以筆者也按Spring boot框架來編寫程式碼。
工具用的Idea和包管理器用的通用的Maven,教程
第一個例子肯定就是程式設計師的開始——Hello World。
首先我們定義一個類,用來作為Restful的返回值,也就是介面返回值。後期所有的介面返回值都是這個類。
ResultBean

package hello;

public class ResultBean {
    private
static int SUCCESS = 0; private static int FAIL = 1; private Integer code; private String errorMsg; private Object data; static public ResultBean ok(){ ResultBean bean = new ResultBean(); bean.setCode(SUCCESS); return bean; } static public ResultBean ok
(Object data){ ResultBean bean = new ResultBean(); bean.setCode(SUCCESS); bean.setData(data); return bean; } static public ResultBean error(){ ResultBean bean = new ResultBean(); bean.setCode(FAIL); return bean; } static public
ResultBean error(String msg){ ResultBean bean = new ResultBean(); bean.setCode(FAIL); bean.setErrorMsg(msg); return bean; } static public ResultBean error(Integer errorCode, String msg){ ResultBean bean = new ResultBean(); bean.setCode(errorCode); bean.setErrorMsg(msg); return bean; } public void setCode(Integer code) { this.code = code; } public void setErrorMsg(String errorMsg) { this.errorMsg = errorMsg; } public void setData(Object data) { this.data = data; } public Integer getCode() { return code; } public String getErrorMsg() { return errorMsg; } public Object getData() { return data; } }

開始Hello World。
pom檔案裡新增Spring boot web依賴。



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

    <properties>
        <java.version>1.8</java.version>
    </properties>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

建立main入口方法的Application類。

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

其中,@SpringBootApplication 是以下三個註解的組合註解:
1. @Configuration,表示本類是Application容器的配置類。
2. @EnableAutoConfiguration,表示啟用預設配置Spring上下文,根據通用模式載入對應的配置。
3. @ComponentScan,表示掃描本類所在的目錄下所有的包下帶有@Service, @Component, @Controller作為Bean,載入帶Spring上下文中。
實現一個Controller。

@RestController
public class HelloWorldController {
    @RequestMapping("/hello")
    public ResultBean hello(@RequestParam(value="name", defaultValue="World") String name) {
        return ResultBean.ok("hello " + name);
    }
}

其中:@RestController是@Controller和@ResponseBody的組合註解,表示當前Controller是Rest風格,會以介面的形式呼叫,方法的返回值就是請求的返回值,不會再去渲染頁面。
本示例的意思是一個預設值為“World”引數,返回”Hello”+ name。
啟動程式並在瀏覽器中輸入:

http://localhost:8080/hello?name=CYF

請求返回值:
這裡寫圖片描述