搭建簡單的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

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

發佈了131 篇原創文章 · 獲贊 35 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章