SpringBoot中注解@Controller和@RestController的区别

@RestController = @Controller + @ResponseBody

  • 如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp或html页面,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是 Return 的内容。
  • 如果需要返回JSON格式的数据到页面,则需要在对应的方法上加上@ResponseBody注解。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 `@Validated` 和 `@NotNull` 注解来实现对入参对象的参数进行非空校验,并且可以使用分组校验来对不同分组进行不同的校验。 首先,定义一个入参对象,例如: ```java public class User { @NotNull(groups = {Add.class, Update.class}, message = "id不能为空") private Long id; @NotBlank(groups = {Add.class, Update.class}, message = "用户名不能为空") private String username; @NotBlank(groups = {Add.class}, message = "密码不能为空") private String password; // 省略其他属性和方法 } ``` 在上述代码,使用了 `@NotNull` 和 `@NotBlank` 注解来对 `id`、`username` 和 `password` 进行非空校验,并且使用了分组校验来对不同分组进行不同的校验。 接着,在 Controller使用 `@Validated` 注解来启用校验功能,并且在需要进行校验的入参对象前使用 `@Valid` 注解来表示需要对该对象进行校验。例如: ```java @RestController @RequestMapping("/user") @Validated public class UserController { @PostMapping("/add") public String addUser(@Validated(Add.class) @RequestBody User user) { // 省略业务逻辑 return "success"; } @PostMapping("/update") public String updateUser(@Validated(Update.class) @RequestBody User user) { // 省略业务逻辑 return "success"; } } ``` 在上述代码,使用了 `@Validated(Add.class)` 和 `@Validated(Update.class)` 注解来指定不同的分组,分别对应添加用户和修改用户的场景,这样就可以根据不同的场景进行不同的校验。 最后,需要定义分组接口,例如: ```java public interface Add {} public interface Update {} ``` 在上述代码,定义了 `Add` 和 `Update` 两个分组接口,用来在入参对象的属性上标记需要进行校验的属性。 这样,当调用添加用户和修改用户的接口时,就会根据不同的分组进行不同的校验,从而保证了入参对象的参数不能为 null。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值