SpringBoot入门(二)--Controller的使用

一、@Controller+@ResponseBody的方式

项目代码:https://github.com/ffzhihua/springbootdemo 

1、添加依赖(根目录 pom.xml)

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

2、在resources下面新建文件夹templates

3、目的去访问我们创建的index.html文件,此时配置我们的控制器

IndexController.java

package cn.buildworld.girl;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * 首页控制器
 *
 * @author zzh
 * @Email 290098388@qq.com
 * @create 2019/1/9 0021
 * @Version:V1.0
 */
@Controller
public class IndexController {

    @RequestMapping("index")
    public String index(){
        //此时就去templates文件夹下面去找对应的网页文件
        return "index";
    }
}

小结:此处就像我们在SpringMVC中使用的控制器一样,在SpringMVC中我们主要是去寻找WEB-INF/js/下面的jsp文件,但是我们不推荐使用这种方式,使用官方的模板会使得性能消耗的厉害。以后都是用@RestController

二、@RestController

graph LR
RestController -->Controller
RestController-->ResponseBody

从结构图就可以看出@RestController代替了原来在SpringMVC中使用的@Controller和@ResponseBody组合

请求地址的设置,和SpringMVC的一致,包括json,RESTful风格等等,请看下面的代码:

package cn.buildworld.girl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;

/**
 * test
 *
 * @author zzh
 * @Email 290098388@qq.com
 * @create 2019/1/9 0021
 * @Version:V1.0
 */
@RestController
@RequestMapping("demo")
public class HelloController {

    @RequestMapping(value = "hello",method = RequestMethod.GET)
    public String say(){
        return "Hello Spring Boot!";
    }

    @Value("${name}")
    private String name;

    @Value("${age}")
    private int age;

    @Autowired
    private Person person;

    /**
     * 返回的是--> 姓名:michong 年龄:18
     * @return
     */
    @RequestMapping(value = "info",method = RequestMethod.GET)
    public String info(){

        return "姓名:"+person.getName()+" 年龄:"+person.getAge();
    }

    /**
     * 返回的是一个json数据
     * @return
     */
    @RequestMapping(value = "info2json",method = RequestMethod.GET)
    public Person info2Json(){

        return person;
    }

    /**
     * RESTful风格
     * url:http://localhost:8080/demo/value/1
     * @return
     */
    @RequestMapping(value = "value/{value}",method = RequestMethod.GET)
    public int getValue2FESTful(@PathVariable(value = "value",required = false)int value){

        return value;
    }

    /**
     * 普通get请求方式
     * url:http://localhost:8080/demo/person?id=3
     * @return
     */
    @RequestMapping(value = "person",method = RequestMethod.GET)
    public int getValue(@RequestParam(value = "id",required = false,defaultValue = "0")int id){

        return id;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值