当前位置: 首页 > wzjs >正文

vps网站空间在线推广企业网站的方法有哪些

vps网站空间,在线推广企业网站的方法有哪些,简单网站建设 有教程,显示佣金的网站是怎么做的Spring Boot中Valid 与 Validated 注解的详解 引言 在Spring Boot应用中,参数校验是确保数据完整性和一致性的重要手段。Valid和Validated注解是Spring Boot中用于参数校验的两个核心注解。本文将详细介绍这两个注解的用法、区别以及代码样例。 Valid注解 功能介…

Spring Boot中@Valid 与 @Validated 注解的详解

引言

在Spring Boot应用中,参数校验是确保数据完整性和一致性的重要手段。@Valid和@Validated注解是Spring Boot中用于参数校验的两个核心注解。本文将详细介绍这两个注解的用法、区别以及代码样例。

@Valid注解
功能介绍

@Valid是Java EE提供的标准注解,它是JSR 303规范的一部分,主要用于Hibernate Validation等场景。在Spring Boot中,@Valid注解用于触发参数校验,确保请求参数的合法性。

使用场景

@Valid注解可以用于方法参数、构造函数、方法参数和成员属性上。它主要用于嵌套校验,即对于对象中的属性值(可能是另一个对象)进行校验。

代码样例
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.Valid;public class User {@NotBlank(message = "用户名不能为空")private String username;@NotNull(message = "密码不能为空")private String password;@Validprivate Address address;// Getter 和 Setter
}public class Address {@NotBlank(message = "国家不能为空")private String country;@NotBlank(message = "城市不能为空")private String city;// Getter 和 Setter
}import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;@RestController
public class UserController {@PostMapping("/addUser")public String addUser(@Valid @RequestBody User user, BindingResult bindingResult) {if (bindingResult.hasErrors()) {return "参数校验失败: " + bindingResult.getAllErrors().get(0).getDefaultMessage();}return "用户添加成功";}
}

在上述代码中,User类中的address属性使用了@Valid注解,表示对address对象进行嵌套校验。在UserController中,addUser方法使用了@Valid注解对传入的User对象进行校验,并使用BindingResult捕获校验错误。

@Validated注解
功能介绍

@Validated是Spring框架特有的注解,属于Spring的一部分,也是JSR 303的一个变种。它提供了一些@Valid所没有的额外功能,比如分组验证。@Validated注解可以用在类、方法和方法参数上,但不能用于成员属性。

使用场景

@Validated注解主要用于支持分组验证,可以更细致地控制验证过程。此外,由于它是Spring专有的,因此可以更好地与Spring的其他功能(如Spring的依赖注入)集成。

代码样例
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.groups.Default;public interface ValidationGroups {interface Insert extends Default {}interface Update {}
}public class Project {@NotBlank(message = "ID不能为空", groups = ValidationGroups.Update.class)private String id;@NotBlankprivate String name;@Min(value = 1, message = "预算不能小于1", groups = ValidationGroups.Insert.class)private int budget;// Getter 和 Setter
}import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.validation.annotation.Validated;@RestController
public class ProjectController {@PostMapping("/insertProject")public String insertProject(@Validated(value = ValidationGroups.Insert.class) @RequestBody Project project, BindingResult bindingResult) {if (bindingResult.hasErrors()) {return "参数校验失败: " + bindingResult.getAllErrors().get(0).getDefaultMessage();}return "项目插入成功";}@PostMapping("/updateProject")public String updateProject(@Validated(value = ValidationGroups.Update.class) @RequestBody Project project, BindingResult bindingResult) {if (bindingResult.hasErrors()) {return "参数校验失败: " + bindingResult.getAllErrors().get(0).getDefaultMessage();}return "项目更新成功";}
}

在上述代码中,我们定义了一个ValidationGroups接口,用于分组验证。Project类中的id属性在Update分组下必填,而budget属性在Insert分组下必填且不能小于1。在ProjectController中,insertProject方法使用@Validated(value = ValidationGroups.Insert.class)注解对传入的Project对象进行Insert分组的校验,而updateProject方法则使用@Validated(value = ValidationGroups.Update.class)注解进行Update分组的校验。

@Valid与@Validated的区别
  1. 嵌套校验:@Valid支持嵌套校验,而@Validated不支持。在需要嵌套校验的场景下,应使用@Valid。
  2. 分组校验:@Validated支持分组校验,而@Valid不支持。在需要根据不同场景应用不同校验规则的情况下,应使用@Validated。
  3. 使用范围:@Valid可以用在方法、构造函数、方法参数和成员属性上,而@Validated只能用在类、方法和方法参数上。
结论

@Valid和@Validated注解在Spring Boot的参数校验中扮演着重要角色。掌握这两个注解的用法和区别,可以帮助开发者更灵活地进行参数校验,确保数据的完整性和一致性。

http://www.dtcms.com/wzjs/263129.html

相关文章:

  • 镇江市机关效能与作风建设网站郑州百度推广哪家好
  • 食品营销型网站2024年重启核酸
  • 呼和浩特做网站的地方企业公司网站建设
  • 为把网站建设更好优化营商环境工作总结
  • 采集做网站保定百度推广联系电话
  • 服饰营销型网站建设朋友圈广告投放价格表
  • 怎么做企业功能网站外贸网站建设优化
  • 关于加强网站建设和管理的通知b站好看的纪录片免费
  • 源码资源官网seo推广软件品牌
  • 站长之家产品介绍seo算法
  • gogogo高清在线播放seo有哪些优缺点?
  • 南京网站开发询南京乐识模板网站建设
  • 外贸网站架构免费广告
  • 戴南做网站关键词搜索爱站
  • 杭州景观设计公司整站优化包年
  • 做网站需要什么基础如何快速提升网站关键词排名
  • 深圳网络营销十年乐云seo专家福州关键词优化平台
  • 怎么用ip做网站百度官网优化
  • 怎样防止别人利用自己电脑做网站新媒体运营哪个培训机构好
  • 自己做的网站怎么排名站长网站工具
  • 中国建筑官网站国外网站加速
  • 0基础学网站开发苏州网络公司
  • 那个大学业做网站怎么看百度指数
  • 个人做信息分类网站需备案吗seo如何优化的
  • 搜索网站不显示图片百度竞价推广账户
  • 微信视频网站怎么做的网络销售是什么
  • 织梦dedecms网站更换域名后文章图片路径批量修改长沙seo代理商
  • 室内设计网站建设软文范例300字
  • 江干网站建设最新营销模式
  • 九江网站建设公司山西seo推广