什么是MVC?
MVC是一种程序分层开发模式,分别是Model(模型),View(视图)以及Controller(控制器)。这样做可以将程序的用户界面和业务逻辑分离,使得代码具有良好的可扩展性、可复用性、可维护性和灵活性。
显而易见,@Controller注解对应的是MVC模式中的Controller对象。在Bean注解存储对象一文中也有过介绍,@Controller表示的是控制器,归属于业务逻辑层,对前端发来的请求进行判断,观察其数据是否合理,也就是控制用户行为,判断参数合理性。
@RequestMapping,翻译过来的意思就是请求映射,顾名思义就是对前端发来的路由地址进行映射,使其对应到某个类或者方法上。
如上图,若对应到某个类上,那么这个类其中的所有方法进行请求映射时都需要先把父路径加上。
如上图,当用户想要进行登录的时候,前端就会向后端发一个路由,而路由正是根据这个@RequestMapping注解其中的请求映射而来。
value指的就是请求地址,但是使用的时候一般其他属性不多见,因此也就将其直接省略。
@RequestMapping(value = "/login")
如果各位程序猿有了解过HTTP协议的话,这其实就是HTTP协议首行中的方法。本来设计协议的大佬是为了更好的描述一次请求是想要干啥,但是在实际开发中,好多都是一刀切,直接使用一个POST请求解决一切请求。
上述最常用的就是GET和POST请求,在面试中也会问一些关于这两个操方法的不同点,需要切记的一点就是没有啥区别,毕竟都是人为规定的,那么肯定就是可以修改的。
@RequestMapping(value = "/login", method = RequestMethod.GET)
@PostMapping(value = "/login")
综上所述,@RequestMapping注解就是进行路由映射,也就是前端在进行某些操作时会用到一些数据,此时前端就会发送路由,而后端根据发送的路由就可以映射到对应的类和方法上进行逻辑操作。
@Requestparam,翻译过来就是请求参数。本质上写代码不使用这个注解也是没有问题的,但是为了代码的严谨性,建议叠加。
?