首先给大家看一下,我在网上找的解释
而在实际应用中为了更直观的去理解这两个注解的意义,我们用代码来表示
Controller
@Controller
public class MainController {
@RequestMapping("/")
public String index() {
return "index";
}
}
RestController
@RestController
public class GreetingController {
private static final String template = "Hello, %s!"; // content 模板
private final AtomicLong counter = new AtomicLong(); // 自动生成 id
@RequestMapping("/greeting")
public Greeting greeting(@RequestParam(value = "name", defaultValue = "World") String name) {
return new Greeting(
counter.incrementAndGet(), // 自增
String.format(template, name) // content模板
);
}
}
可以看出
@Controller注解
返回的时候会查找字符串定义的模板页面
如 return index
spring boot 则会自动返回在 resources\templates 下面的index.html 文件
如 return blog/list.html
那么只需返回 blog下的list.html文件
@RestController注解
返回API所需的相关的数据