Controller上的相关注解

一、代码示例

@Validated // 启用参数验证
@Slf4j
@Api(tags = "运费管理")
@RestController
@RequestMapping("/carriages")
public class CarriageController {
    @Resource
    private CarriageService carriageService;

    @GetMapping
    @ApiOperation(value = "运费模板列表")
    public List<CarriageDTO> findAll() {
        return this.carriageService.findAll();
    }
}

二、注解解释

这段代码展示了一个名为 `CarriageController` 的 Spring MVC 控制器类,用于处理与运费管理相关的 HTTP 请求。以下是对代码中各个注解的详细解释:

1. **@Slf4j**:


   - 这是由 Lombok 提供的注解,用于自动生成一个名为 `log` 的日志记录器(通常是 `org.slf4j.Logger` 类型)。
   - 使用这个注解后,可以直接在类中使用 `log.info()`、`log.debug()`、`log.error()` 等方法记录日志,而不需要手动创建日志对象。
   - 在控制器中,日志记录通常用于跟踪请求的处理过程、记录异常信息等。

2. **@Validated**:


   - 这是 Spring 提供的注解,用于启用方法参数验证(基于 Bean Validation API,如 `javax.validation.constraints` 注解)。
   - 当这个注解用于类上时,它会对该类中的方法参数进行验证。如果参数不符合验证规则,会抛出 `ConstraintViolationException` 异常。
   - 在控制器中使用 `@Validated`,通常是为了确保接收到的请求参数符合预期的格式或范围。

3. **@RestController**:


   - 这是 Spring MVC 的注解,用于将当前类标识为一个 RESTful 控制器。
   - 该注解的作用相当于同时使用了 `@Controller` 和 `@ResponseBody`,表示这个控制器中的每个方法都会将返回值直接写入 HTTP 响应体,而不是返回视图名。
   - `@RestController` 适用于需要返回 JSON、XML 或其他类型数据而不是视图的控制器。

4. **@Api(tags = "运费管理")**:


   - 这是 Swagger 提供的注解,用于为控制器生成 API 文档。
   - `@Api` 注解用于描述控制器的用途,`tags` 参数为该控制器分配一个或多个标签,用于在 Swagger UI 中对 API 进行分组显示。
   - 在这个例子中,`tags = "运费管理"` 表示这个控制器处理的接口与“运费管理”相关。

5. **@RequestMapping("/carriages")**:


   - 这是 Spring MVC 的注解,用于映射 HTTP 请求到具体的处理方法或类上。
   - `@RequestMapping` 可以用于类或方法上,在类上时,它为类中的所有请求方法定义一个共同的基础路径。
   - 在这里,`@RequestMapping("/carriages")` 指定了该控制器的基础路径为 `/carriages`,即该控制器处理的所有请求 URL 都会以 `/carriages` 开头。

三、 总结

- **`@Slf4j`**:提供日志功能。
- **`@Validated`**:启用参数验证。
- **`@RestController`**:将类标识为 RESTful 控制器,返回值直接写入响应体。
- **`@Api(tags = "运费管理")`**:为 Swagger API 文档添加描述。
- **`@RequestMapping("/carriages")`**:为控制器定义一个基础路径 `/carriages`。


- **`@Resource`**:将 `CarriageService` 实现注入到控制器中。
- **`@GetMapping`**:映射 GET 请求到 `findAll()` 方法。
- **`@ApiOperation(value = "运费模板列表")`**:为 Swagger API 文档描述该方法的作用。

通过这些注解,`CarriageController` 控制器能够处理与运费管理相关的 HTTP 请求,同时具备日志记录、参数验证、自动生成 API 文档等功能,确保了代码的规范性和可维护性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cyt涛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值