@NotNull:用在基本数据类型的非空校验,不能为null,但可以为empty。而且被其标注的字段可以使用@size、@Max、@Min对字段数值进行大小的控制@NotEmpty:用在集合类或数组上,不能为空,但长度必须大于0@NotBlank:只能用在String类型上的非空校验,不能为空,而且调用trim()后,长度必须大于0(即必须有实际字符)注意:注意在使用@NotBlank注解时,一定要和@valid一起使用,否则@NotBlank不起作用。一个BigDecimal的字段使用字段校验标签应该为@NotNull。@Length:一般用在String类型上可对字段数值进行最大长度限制的
前言 当我们使用SpringBoot框架处理客户端提交的HTTP请求时,常常需要获取请求参数并将其转换为相应的Java对象。@RequestBody注解可以帮助我们实现这个目标,它用于从HTTP请求体中获取请求参数,并将其转换为指定的Java对象。本篇博客将介绍@RequestBody注解的基本用法和注意事项。什么是@RequestBody注解?在SpringBoot中,@RequestBody注解用于获取HTTP请求体中的数据,并将其转换为指定的Java对象。通常在处理POST或PUT请求时,请求体中包含客户端提交的数据,@RequestBody注解可以将这些数据转换为相应的Java对象,方
写在前面Feign是微服务中服务间调用的优选组件,后来的OpenFeign也是基于此来开展的。为什么要梳理一下Feign注解@FeignClient中的各个参数?踩坑太多面试总问参数一栏表@FeignClient的源码示例图如下:今天我们接着来说最后的几个参数。终于要大功告成了!fallbackFactoryfallbackFactory参数,和我们在上篇文章中学习的fallback很相似,可以说是具备fallback的功能,但比起fallback要更加完善。fallbackFactory是可以捕获到Feign接口所有发生的异常,并且同样可以实现fallback相关接口来进行自定义回滚代码或者
写在前面Feign是微服务中服务间调用的优选组件,后来的OpenFeign也是基于此来开展的。为什么要梳理一下Feign注解@FeignClient中的各个参数?踩坑太多面试总问参数一栏表@FeignClient的源码示例图如下:今天我们接着来说最后的几个参数。终于要大功告成了!fallbackFactoryfallbackFactory参数,和我们在上篇文章中学习的fallback很相似,可以说是具备fallback的功能,但比起fallback要更加完善。fallbackFactory是可以捕获到Feign接口所有发生的异常,并且同样可以实现fallback相关接口来进行自定义回滚代码或者
执行传参@Select是Mybatis框架中的一个注解,用于执行SQL查询语句,并把查询结果映射到指定的Java对象中。具体来说,@Select注解会将注解中的SQL查询语句交给Mybatis框架进行解析和执行。在解析过程中,Mybatis会通过#{}占位符获取查询语句中的参数,并将这些参数传递给底层的JDBC驱动程序,最终执行SQL查询并返回查询结果。例如,以下是一个简单的使用@Select注解查询用户信息的示例:publicinterfaceUserMapper{ @Select("SELECTid,name,ageFROMuserWHEREid=#{userId}") Userget
fastjson的ToStringSerializer注解:java中long数据能表示的范围比js中number大,在跟前端交互时,这样也就意味着部分数值在js中存不下(变成不准确的值)。解决办法可以这样:使用fastjson的ToStringSerializer注解,让系统序列化时,保留相关精度。/***记录属性的主键*/@JsonSerialize(using=ToStringSerializer.class)privateLongid;场景:id为long,传到后台就变了值。测试一下,这个要是只有几位数的情况下,其实都不需要这个注解,大于某个值,19位数的时候就会出问题,导致精度丢失;
fastjson的ToStringSerializer注解:java中long数据能表示的范围比js中number大,在跟前端交互时,这样也就意味着部分数值在js中存不下(变成不准确的值)。解决办法可以这样:使用fastjson的ToStringSerializer注解,让系统序列化时,保留相关精度。/***记录属性的主键*/@JsonSerialize(using=ToStringSerializer.class)privateLongid;场景:id为long,传到后台就变了值。测试一下,这个要是只有几位数的情况下,其实都不需要这个注解,大于某个值,19位数的时候就会出问题,导致精度丢失;
本篇概览本文是《quarkus依赖注入》系列的第三篇,前文咱们掌握了创建bean的几种方式,本篇趁热打铁,学习一个与创建bean有关的重要知识点:一个接口如果有多个实现类时,bean实例应该如何选择其中的一个呢?可以用注解来设定bean的选择逻辑。如果您熟悉spring,此刻应该会想到ConditionalXXX注解,下面的代码来自spring官方,注解ConditionalOnProperty的作用是根据配置信息来控制bean是否实例化,本篇咱们要掌握的是quarkus框架下的类似控制逻辑。@Service@ConditionalOnProperty(value="logging.enabl
1、@TableField(value="email")//指定数据库表中字段名如果数据库和实体类的字段名不一致,可以使用@TableField注解指定数据库表中字段名。 2、@TableField(exist="false")//数据库表中不存在的数据,在实体类中指定。如果数据库表中不存在字段,在实体类中使用@TableField注解指定。例如:数据库表中没有address字段,可以在该字段上方使用@TableField(exist="false")来指定。3、@TableField(select="false")//查询时不返回该字段的值如果不想被查询出来该字段,可以使用@TableFie
项目场景:学习尚硅谷的spring中的基于注解管理bean时,运行程序测试时报错“Unsupportedclassfilemajorversion63”问题描述运行测试的时候报错“Unsupportedclassfilemajorversion63”报错内容org.springframework.beans.factory.BeanDefinitionStoreException:Failedtoreadcandidatecomponentclass:file[D:\SSM\SSM\spring_ioc_annotation\target\test-classes\com\atguigu\sp