@Controller
@Controller是用来表示被注解的类作为MVC框架的一个Controller的主要注解。DispatcherServlet扫描被@Controller注解的类,从而将Web请求映射到@RequestMapping注解的方法上。与@Service和@Respository之类的Spring注解一样,@Controller也是继承自@Compnent注解。
@RequestMapping
@RequestMapping被用来将用户的请求映射到类或方法,可以在类级别或方法级别应用该注解。使用@RequestMapping注解的方法允许有非常灵活的签名。他可以接收HTTP Servlet请求/响应对象、Http Session对象、InputStream/OutputStream对象、PathVariable/ModelAttribute注解参数、BindingResult对象以及其他对象。
@ModeAttribute
@ModeAttribute注解使用一个向视图公开的键将返回值和参数绑定起来。可以在方法级别或者方法的参数上应用该注解。
在方法级别上,该注解可以帮助加载参考数据。
在方法的参数级别,处理器方法获取对对象的引用,而该对象包含了用户通过表单输入的数据。
@PathVariable
@PathVariable将方法参数绑定到一个URL,可以通过URL从用户获取数据。
@ControllerAdvice
@ControllerAdvice注解能够将代码集中到一个地方,以便跨越控制器共享代码。使用@ControllerAdvice注解的类可以包含带有@ExceptionHandler、@InitBinder和@ModeAttribute注解的方法,而这些方法可以被用到应用程序中所有带@RequestMapping注解的方法中。
@InitBinder
@InitBinder注解确定用来初始化WebDataBinder的方法。
@ExceptionHandler
@ExceptionHandler注解可以定义方法来处理在控制器类中发生的异常。