一、@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;
}
}