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注解的使用:

javaCopy Code
@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 

 

posted @   langpo  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示