搭建簡單的Restful風格的web服務
阿新 • • 發佈:2019-01-08
筆者最近在學習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
請求返回值: