springMVC包含那些注解
@t 在配置类中开启Web MMC 的配置支持,如一些ViewResoler 或者Message Converter等,若无此句,重写WebMvcConfigurerAdapter方法(用于springMvc配置)
@Controller
声明该类为springmvc配置类可被扫描到
@ResquetMapping用于映射web请求,包括路径参数
@ResponseBody支持将页面返回值放在response内,而不是页面,通常用户返回为json数据
@Responsbody 通常(2-3)个参数
@PathVarable 用于接受路径参数,比如
@RequestMapping("//hello{name}")
申明的路径,将注解放在参数中,即可获得该值,通常作为restful的接口实现
@RestController
通常该注解
`@RestController`是Spring框架中的一个注解,它表示这个类是用来处理HTTP请求的控制器。与`@Controller`注解不同的是,`@RestController`注解会自动将返回值转换为JSON格式,并且默认情况下响应的Content-Type是application/json。
例如,假设你需要创建一个RESTful风格的API接口,用于获取用户的基本信息。你可以创建一个`UserController`类,并在类上添加`@RestController`注解,示例如下:
```java
@RestController
public class UserController {
@GetMapping("/users/{id}")
public User getUser(@PathVariable("id") long id) {
// 从数据库中获取用户信息
User user = userService.getUserById(id);
return user;
}
}
```
在这个示例中,`@RestController`注解表示`UserController`类是一个RESTful控制器,其中的`getUser`方法用于处理GET请求,获取指定ID的用户信息。方法的返回值是一个`User`对象,它会自动转换为JSON格式并返回给客户端。
总之,`@RestController`注解表示这个类是用于处理HTTP请求的控制器,并且响应的数据会自动转换为JSON格式。
@Controlleradvice
ControllerAdvice
是Spring框架中的一个注解,用于定义全局的异常处理、数据绑定和数据预处理逻辑。
当在多个控制器中都需要进行相同的异常处理时,可以使用@ControllerAdvice
注解来集中管理异常处理逻辑。@ControllerAdvice
注解标记的类将成为全局异常处理类,可以捕获其他控制器抛出的异常,并对其进行统一处理。
除了异常处理外,@ControllerAdvice
还可以用于全局数据绑定和数据预处理。你可以在@ControllerAdvice
注解标记的类中定义带有@InitBinder
注解的方法,用于对所有控制器中的请求参数进行统一的数据绑定和预处理操作。
下面是一个简单的示例,展示了@ControllerAdvice
注解的使用:
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity<String> handleException(Exception ex) {
// 异常处理逻辑
return new ResponseEntity<>("Something went wrong", HttpStatus.INTERNAL_SERVER_ERROR);
}
@InitBinder
public void initBinder(WebDataBinder binder) {
// 数据绑定和预处理逻辑
}
}
在这个示例中,GlobalExceptionHandler
类被标记了@ControllerAdvice
注解,它包含了一个handleException
方法用于处理所有控制器中抛出的Exception异常,并返回一个统一的错误响应。另外,该类还包含了一个initBinder
方法,用于对所有控制器中的请求参数进行统一的数据绑定和预处理操作。
总之,@ControllerAdvice
注解用于定义全局的异常处理、数据绑定和数据预处理逻辑。通过使用@ControllerAdvice
注解,你可以将这些逻辑集中管理,提高代码的重用性和可维护性。
@modleAttibute
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析