搭建简单的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

请求返回值:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值