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

一、@Controller+@ResponseBody的方式

1、添加依赖

        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-thymeleafartifactId>
        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 MiChong
 * @Email [email protected]
 * @create 2018/2/21 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 MiChong
 * @Email [email protected]
 * @create 2018/2/21 0021
 * @Version:V1.0
 */
@RestController
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;
    }
}

你可能感兴趣的:(Java,Spring)