Spring 面试题
目录

Spring MVC 中的 Controller 的作用是什么?

· 约 4 分钟读完 · 第 66 / 130 章

推荐答案

在Spring MVC框架中,Controller的作用是处理客户端请求并返回相应的视图或数据。具体来说,Controller负责接收HTTP请求,调用业务逻辑处理请求,并决定返回哪个视图或数据给客户端。它是MVC模式中的“C”(Controller)部分,负责协调模型(Model)和视图(View)之间的交互。

本题详细解读

1. 请求处理

Controller通过注解(如@Controller或@RestController)标记为Spring MVC中的控制器类。它使用@RequestMapping或其变体(如@GetMapping、@PostMapping等)来映射特定的URL路径到处理方法。当客户端发起请求时,Spring MVC框架会根据URL路径找到对应的Controller方法,并调用该方法处理请求。

2. 业务逻辑调用

在Controller方法中,通常会调用Service层或其他业务逻辑组件来处理请求。Controller本身不直接处理业务逻辑,而是通过调用Service层来实现业务逻辑的处理。

3. 数据绑定与验证

Controller还可以处理请求参数的绑定和验证。通过使用@RequestParam、@PathVariable、@RequestBody等注解,可以将请求参数绑定到方法参数上。同时,Spring MVC还支持数据验证,可以通过@Valid注解对请求数据进行验证。

4. 视图解析与返回

在处理完请求后,Controller方法通常会返回一个视图名称或直接返回数据。对于返回视图的情况,Spring MVC会根据视图名称解析出具体的视图(如JSP、Thymeleaf模板等)并渲染给客户端。对于返回数据的情况(通常用于RESTful API),Controller可以直接返回JSON、XML等格式的数据。

5. 异常处理

Controller还可以处理请求过程中可能发生的异常。通过使用@ExceptionHandler注解,可以在Controller中定义异常处理方法,统一处理特定类型的异常,并返回适当的错误响应。

6. 示例代码

以下是一个简单的Controller示例:

在这个示例中,MyController类处理了两个请求:一个GET请求和一个POST请求。GET请求返回一个简单的字符串,而POST请求则创建并返回一个用户对象。此外,还定义了一个异常处理方法,用于处理ResourceNotFoundException异常。