搭建简单的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.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>
    dependencies>

    <properties>
        <java.version>1.8java.version>
    properties>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
            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

请求返回值:
搭建简单的Restful风格的web服务_第1张图片

你可能感兴趣的:(Spring系列)