1.创建一个springboot的项目,会有一个main函数被@springBootApplication注解

2.在controller上注释**@RestController**,表示这是一个controller控制器

@Controller和@RestController的区别

1.@RestController注解相当于@ResponseBody + @Controller合在一起的作用

2.如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。
例如:本来应该到success.jsp页面的,则其显示success.

@RequestMapping(value = "/test")
public String test(HttpServletRequest request, HttpServletResponse response){
     return "success";
}

3.如果使用@RestController注解Controller,需要返回到指定页面,则需要配置视图解析器InternalResourceViewResolver,可以利用ModelAndView返回试图。

@RequestMapping(value = "/test")
public String test(HttpServletRequest request, HttpServletResponse response){
     return newModelAndView("success");
}

4.如果使用@Controller注解Controller,如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。

@ResponseBody
@RequestMapping(value = "/test")
public String test(HttpServletRequest request, HttpServletResponse response){
     return "success";
}

总结:@RestController返回的是String,json等字符串如果是返回一个jsp页面需要使用new ModelAndView(""),@Controller无法返回字符串,

对于@RequestMapping()

1.当控制器在类级别上添加@RequestMapping注解时,这个注解会应用到控制器的所有处理器方法上。
2.处理器方法上的@RequestMapping注解会对类级别上的@RequestMapping的声明进行补充。

源码:https://github.com/LUK-qianliu/springboot/