首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

求求你别在用IF ELSE校验参数了

1.在对象中添加注解 @Data public class User { //注解对静态变量生效 @NotBlank(message = "性别不能为") private...static String sex; @NotBlank(message = "姓名不能为") @Size(min = 2,max = 5,message = "姓名长度规范...@Valid注解即可(校验对静态变量生效),在使用 @Valid 注解的参数后可以紧跟着一个 BindingResult 类型的参数,用于获取校验结果(将校验结果封装在BingdingResult对象中...//单个对象校验 @PostMapping("user") //校验参数后边跟BindingResult,spring不会抛出异常,将校验结果封装在这个对象中 public...,属性上加 @Valid,可以验证作为属性的对象内部的验证 @Data public class User2 { @NotBlank(message = "姓名不能为") private

1.9K10

求求你别在用IF ELSE校验参数了

1.在对象中添加注解 @Data public class User { //注解对静态变量生效 @NotBlank(message = "性别不能为") private...static String sex; @NotBlank(message = "姓名不能为") @Size(min = 2,max = 5,message = "姓名长度规范...@Valid注解即可(校验对静态变量生效),在使用 @Valid 注解的参数后可以紧跟着一个 BindingResult 类型的参数,用于获取校验结果(将校验结果封装在BingdingResult对象中...//单个对象校验 @PostMapping("user") //校验参数后边跟BindingResult,spring不会抛出异常,将校验结果封装在这个对象中 public...,属性上加 @Valid,可以验证作为属性的对象内部的验证 @Data public class User2 { @NotBlank(message = "姓名不能为") private

1.7K20
您找到你想要的搜索结果了吗?
是的
没有找到

求求你别在用IF ELSE校验参数了

1.在对象中添加注解 @Data public class User { //注解对静态变量生效 @NotBlank(message = "性别不能为") private...static String sex; @NotBlank(message = "姓名不能为") @Size(min = 2,max = 5,message = "姓名长度规范...@Valid注解即可(校验对静态变量生效),在使用 @Valid 注解的参数后可以紧跟着一个 BindingResult 类型的参数,用于获取校验结果(将校验结果封装在BingdingResult对象中...//单个对象校验 @PostMapping("user") //校验参数后边跟BindingResult,spring不会抛出异常,将校验结果封装在这个对象中 public...,属性上加 @Valid,可以验证作为属性的对象内部的验证 @Data public class User2 { @NotBlank(message = "姓名不能为") private

1.7K20

Validator,就来这一篇吧

1.在对象中添加注解 @Data public class User { //注解对静态变量生效 @NotBlank(message = "性别不能为") private...static String sex; @NotBlank(message = "姓名不能为") @Size(min = 2,max = 5,message = "姓名长度规范...@Valid注解即可(校验对静态变量生效),在使用 @Valid 注解的参数后可以紧跟着一个 BindingResult 类型的参数,用于获取校验结果(将校验结果封装在BingdingResult对象中...//单个对象校验 @PostMapping("user") //校验参数后边跟BindingResult,spring不会抛出异常,将校验结果封装在这个对象中 public...,属性上加 @Valid,可以验证作为属性的对象内部的验证 @Data public class User2 { @NotBlank(message = "姓名不能为") private

2.5K10

Java异常的优雅的设计

由于本文只作一些经验之谈,涉及到基础知识部分,如果读者对异常的概念还很模糊,请先查看基础知识。...的 收货地址的必要字段不能为 如果用户还没有收货地址,当此收货地址创建时设置成默认收货地址 — 删除收货地址: 入参: 用户id 收货地址id 约束: 用户id不能为,且此用户确实是存在的 收货地址不能为...,且此用户确实是存在的 收货地址不能为,且此收货地址确实是存在的 判断此收货地址是否是用户的收货地址 默认地址设置: 入参: 用户id 收货地址id 约束: 用户id不能为,且此用户确实是存在的 收货地址不能为...约束: 用户id不能为,且此用户确实是存在的 收货地址不能为,且此收货地址确实是存在的 判断此收货地址是否是用户的收货地址 约束判断和技术选型 对于上述列出的约束条件和功能列表,我选择几个比较典型的异常处理场景进行分析...删除收货地址: 入参: 用户id 收货地址id 约束: 用户id不能为,且此用户确实是存在的 收货地址不能为,且此收货地址确实是存在的 判断此收货地址是否是用户的收货地址 判断此收货地址是否为默认收货地址

84720

如何优雅的设计 Java 异常

由于本文只作一些经验之谈,涉及到基础知识部分,如果读者对异常的概念还很模糊,请先查看基础知识。...的 收货地址的必要字段不能为 如果用户还没有收货地址,当此收货地址创建时设置成默认收货地址 — 删除收货地址: 入参: 用户id 收货地址id 约束: 用户id不能为,且此用户确实是存在的 收货地址不能为...,且此用户确实是存在的 收货地址不能为,且此收货地址确实是存在的 判断此收货地址是否是用户的收货地址 默认地址设置: 入参: 用户id 收货地址id 约束: 用户id不能为,且此用户确实是存在的 收货地址不能为...约束: 用户id不能为,且此用户确实是存在的 收货地址不能为,且此收货地址确实是存在的 判断此收货地址是否是用户的收货地址 约束判断和技术选型 对于上述列出的约束条件和功能列表,我选择几个比较典型的异常处理场景进行分析...删除收货地址: 入参: 用户id 收货地址id 约束: 用户id不能为,且此用户确实是存在的 收货地址不能为,且此收货地址确实是存在的 判断此收货地址是否是用户的收货地址 判断此收货地址是否为默认收货地址

2.1K00

译:持久化DDD聚合

在我们的示例中, Order 类是聚合根的正确候选对象。...JPA and Hibernate 在本节中,让我们尝试使用JPA和Hibernate持久化订单聚合。...显然,我们遗漏了一些JPA需求: 1、添加映射注释 2、OrderLine和Product类必须是实体或@Embeddable类,而不是简单的值对象 3、为每个实体@Embeddable类添加一个的构造函数...除此之外,基本属性(例如字符串类型)仍然需要setter方法,这违反了预期的值对象设计。 构造函数要求强制value对象属性不再是final,这打破了我们最初设计的一个重要方面。...然而,如果我们想要完全兼容JPA,我们必须至少对默认构造函数使用受保护的可见性,这意味着同一包中的其他类可以在指定属性值的情况下创建值对象。 3.2.

1.7K30

持久化DDD聚合

在我们的示例中, Order 类是聚合根的正确候选对象。...JPA and Hibernate 在本节中,让我们尝试使用JPA和Hibernate持久化订单聚合。...显然,我们遗漏了一些JPA需求: 1、添加映射注释 2、OrderLine和Product类必须是实体或@Embeddable类,而不是简单的值对象 3、为每个实体@Embeddable类添加一个的构造函数...除此之外,基本属性(例如字符串类型)仍然需要setter方法,这违反了预期的值对象设计。 构造函数要求强制value对象属性不再是final,这打破了我们最初设计的一个重要方面。...然而,如果我们想要完全兼容JPA,我们必须至少对默认构造函数使用受保护的可见性,这意味着同一包中的其他类可以在指定属性值的情况下创建值对象。 3.2.

1.4K20

Dubbo服务如何优雅的校验参数

, messageTemplate='用户手机号不能为'}, ConstraintViolationImpl{interpolatedMessage='用户标识不能为', propertyPath=..., messageTemplate='用户手机号不能为'}, ConstraintViolationImpl{interpolatedMessage='用户标识不能为', propertyPath=...但从前面所定义的服务接口来看,一般业务开发会定义统一的返回对象格式(如前文示例中的FacadeResult),对于业务异常情况,会约定相关异常码并结合相关性信息提示。...因此对于参数校验不合法的情况,服务调用方自然希望服务端抛出一大段包含堆栈信息的异常信息,而是希望还保持这种统一的返回形式,就如下面这种返回所示: Dubbo接口服务端配置: { "code":...1001, "msg": "用户名不能为", "data": null } 3.1 ValidationFilter & JValidator 想要做到返回格式的统一,我们先来看下前面所抛出的异常是如何来的

1.3K10

这样设计 Java 异常更优雅,赶紧学!

由于本文只作一些经验之谈,涉及到基础知识部分,如果读者对异常的概念还很模糊,请先查看基础知识。...的 收货地址的必要字段不能为 如果用户还没有收货地址,当此收货地址创建时设置成默认收货地址 — 删除收货地址: 入参: 用户id 收货地址id 约束: 用户id不能为,且此用户确实是存在的 收货地址不能为...,且此用户确实是存在的 收货地址不能为,且此收货地址确实是存在的 判断此收货地址是否是用户的收货地址 默认地址设置: 入参: 用户id 收货地址id 约束: 用户id不能为,且此用户确实是存在的 收货地址不能为...约束: 用户id不能为,且此用户确实是存在的 收货地址不能为,且此收货地址确实是存在的 判断此收货地址是否是用户的收货地址 约束判断和技术选型 对于上述列出的约束条件和功能列表,我选择几个比较典型的异常处理场景进行分析...删除收货地址: 入参: 用户id 收货地址id 约束: 用户id不能为,且此用户确实是存在的 收货地址不能为,且此收货地址确实是存在的 判断此收货地址是否是用户的收货地址 判断此收货地址是否为默认收货地址

48820

SpringBoot中处理校验逻辑的两种方式,真的很机智!

final long serialVersionUID = 1L; @ApiModelProperty(value = "登录名") @NotBlank(message="登录名不能为...") private String userLogin; @ApiModelProperty(value = "密码") @NotBlank(message="密码不能为")...除了 @NotBlank 注解,Hibernate Validator 还提供了以下常用注解: @NotNull:被注解的字段不能为 null; @NotEmpty:被注解的字段不能为; @Min:被注解的字段必须大于等于其...这里涉及到了 SpringBoot AOP 的知识,我在前面的文章里讲解过了,戳这个链接可以直达:SpringBoot AOP 扫盲 第四步,访问登录接口,用户名和密码都不传入的情况下,就会返回“用户名不能为...不过,也带来一些弊端,比如说: 需要在请求接口的方法中注入 BindingResult 对象 只能校验一些非常简单的逻辑,涉及到数据查询就无能为力了。

78820

芋道 Spring Boot 参数校验 Validation 入门

@NotEmpty :集合对象的元素不为 0 ,即集合不为,也可以用于字符串不为 null 。 @NotNull :不能为 null 。 @Null :必须为 null 。...想要提前看的胖友,可以看看 《Spring AOP 通过获取代理对象实现事务切换》 文章。 先暂时启动项目。等我们添加好 Controller 。...结果,此处抛出 IllegalStateException 异常。 显然,这里并没有将当前的代理对象,设置到 AopContext 中,所以抛出 IllegalStateException 异常。...输出如下: username:登陆账号不能为 password:密码不能为 如果校验通过,则返回的 Set> 集合为。 8....UserUpdateDTO.id.NotNull=用户编号不能为 messages_en.properties :英文的 i18 配置文件。

4.1K52

Spring-Data-JPA尝鲜:快速搭建CRUD+分页后台实例

它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据。...Hibernate对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。 Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。...当然上面我们是通过自己创建了一个Pageable对象,Spring也支持直接获取Pageable对象,可以把上面的getAllUsers(...)方法改写成下面这样: @GetMapping("/all...再次查询用户,也能看到正确的数据: { "id": 1, "username": "wmyskxz", "password": "123456" } 分页测试: 我们使用添加功能为数据库添加...参考资料: springboot(五):spring data jpa的使用——纯洁的微笑 springboot(十五):springboot+jpa+thymeleaf增删改查示例——纯洁的微笑

1.4K10

Android开发笔记(八十五)手机数据库Realm

现在编译通过了,可是运行时又坑爹了,居然报错“java.lang.IllegalArgumentException: Country is not part of the schema for this...如果指定默认版本号为0,若原版本号与现版本号不一致,Realm会抛出异常“io.realm.exceptions.RealmMigrationNeededException: RealmMigration...@Required : 加在字段前面,表示该字段非。 @Ignore: 加在字段前面,表示该字段不是Realm表的字段。...Realm的where方法获得,下面是RealmQuery类的常用方法: 查询条件 isNull : 指定字段为。...findAll : 返回结果集所有字段,返回值为RealmResults队列 findAllSorted : 排序返回结果集所有字段,返回值为RealmResults队列 下面是Realm查询操作的代码示例

1.7K20

java 异常分类和处理机制

当我们在写某个方法的时候,可能会偶然遇到某个错误,我们认为这个问题时运行时可能为发生的,并且理论上讲,没有这个问题的话,程序将会正常执行的时候,它不强制要求调用者一定要捕获这个异常,此时抛出RuntimeException...异常,举个例子,当传来一个路径的时候,需要返回一个路径对应的File对象: 上述例子表明,如果调用者调用getFiles(String)的时候如果path是,那么就抛出指针异常(它是RuntimeException...4.5 何优雅的设计java异常示例 domain介绍 根据项目场景来看,需要两个domain模型,一个是用户实体,一个是地址实体....首先看我的service接口定义: 我们来关注一下实现: 添加收货地址 首先再来看一下之前整理的约束条件: 入参: 用户id 收货地址实体信息 约束: 用户id不能为,且此用户确实是存在的...收货地址的必要字段不能为 如果用户还没有收货地址,当此收货地址创建时设置成默认收货地址 先看以下代码实现: 其中,已经完成了上述所描述的三点约束条件,当三点约束条件都满足时,才可以进行正常的业务逻辑

83030

= obj 判,10招让你彻底告别指针异常!

示例 Objects.isNull 判断对象是否为,为null返回true,否则返回false Object obj = null; System.out.println(Objects.isNull...,尽量不要返回null; 比如一个方法的执行最终返回的是List,当List没有值的时候,可以返回null对象,而是可以返回一个的List public List select(){ //...String message) 包含空白字符串,抛出异常 IllegalArgumentException doesNotContain(String textToSearch, String substring...(i1,"i1 不为"); Map map = null; Assert.notEmpty(map,"map 不为"); 异常: Exception in thread "main" java.lang.IllegalArgumentException...int m = i; // 正常 int n = j; // 指针异常 当变量x、y 只定义、赋值的时候,x + 1 和 y + 1 是没办法通过编译的;而包装类 j 是可以指定null对象,当包装类参与运算的时候

59420

Spring Boot 缓存Spring Boot缓存

代码示例: @Cacheable("userList") // 标识读缓存操作 override fun findAll(): List { return userDao.findAll... beforeInvocation:是否在方法执行前就清空,缺省为 false,如果指定为 true,则在方法还没有执行的时候就清空缓存,缺省情况下,如果方法执行抛出异常,则不会清空缓存。...=create-drop spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect spring.jpa.hibernate.naming.physical-strategy...因为这些缓存的对象是存储在内存中的。在大型分布式的系统中,缓存对象往往会非常大,这个时候我们就会有专门的缓存服务器(集群)来存储这些数据了,例如 Redis。...提示:本章示例工程源代码https://github.com/EasySpringBoot/demo_cache

3.3K30
领券