SpringMVC 的 @ControllerAdvice 有啥用
时间: 2024-01-10 19:39:47 浏览: 31
@ControllerAdvice 是 Spring MVC 提供的一个注解,它可以用来定义一个全局的异常处理器、全局的数据绑定和数据预处理器等。具体来说,@ControllerAdvice 可以实现以下功能:
1. 全局异常处理:通过 @ExceptionHandler 注解定义一个方法,当发生异常时,该方法会被调用,从而对异常进行统一处理。
2. 全局数据绑定和数据预处理:通过 @InitBinder 注解定义一个方法,用来对请求参数进行数据绑定和预处理。
3. 全局数据响应:通过 @ModelAttribute 注解定义一个方法,用来将一些公共的数据添加到每个请求的 Model 中,从而方便页面渲染。
总之,@ControllerAdvice 可以帮助我们在一个地方处理所有的控制器的异常和数据处理,从而使代码更加简洁和易于维护。
相关问题
@ControllerAdvice
@ControllerAdvice是Spring框架中的一个注解,用于定义全局控制器的异常处理器。
当SpringMVC中的控制器抛出异常时,如果没有被捕获并处理,那么该异常将会被传递到@ControllerAdvice注解标注的类中进行处理。该类中可以定义多个方法,每个方法用于处理不同类型的异常。通过使用@ControllerAdvice,我们可以实现全局异常处理、全局数据绑定等功能。
springmvc @NotNull 注解
Spring MVC中的@NotNull注解是用于验证请求参数或方法参数是否为null的注解。在使用@NotNull注解时,需要先引入相关的依赖。根据引用和引用所提供的信息,可以使用以下依赖解决这个问题:
```xml
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.7.Final</version>
</dependency>
```
在Spring MVC中使用@NotNull注解时,需要在参数上添加该注解以进行验证。例如:
```java
@RequestMapping("/example")
public void exampleMethod(@NotNull String parameter) {
// method implementation
}
```
这样,在请求参数"parameter"为null时,会抛出验证异常。通过使用@NotNull注解,可以有效地验证参数的有效性。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [SpringMVC @NotNull校验不生效](https://blog.csdn.net/YKRY35/article/details/100778402)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [Java和springmvc@NotNull报错,校验不生效!](https://blog.csdn.net/Mrs_chens/article/details/102664415)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [基于mysql+ssm+bootstrap的员工管理系统项目源码](https://download.csdn.net/download/qq_35831906/88227142)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]