首页 > 其他分享 >定时任务及异步,自定义注解进行参数校验

定时任务及异步,自定义注解进行参数校验

时间:2024-01-15 10:37:57浏览次数:22  
标签:异步 自定义 Region 数据类型 校验 regions 注解 拷贝

简单来说:

  • 浅拷贝:对基本数据类型进行值传递,对引用数据类型进行引用传递般的拷贝,此为浅拷贝
  • 深拷贝: 对基本数据类型进行值传递,对引用数据类型,创建一个新的对象,并复制其内容,此为深拷贝。
 
  1. 如何在 Spring/Spring Boot 中优雅地做参数校验?
springboot项目使用validation-api进行参数校验_jakarta.validation 怎么导入-CSDN博客 添加了这个jar包,仅代表可以在项目中引入如@NotNull等注解,但是它并不会起作用,上面的依赖只是使用了Java规范,并没有提供实现,因此还需要引入hibernate-validator模块(在springboot项目中直接使用场景启动器即可spring-boot-starter-validation)   如果不加全局捕获异常@ControllerAdvice等,那么比如用postman调用返回只是个错误码,所以得捕获,并且返回体其实也是自己在捕获那里自己加的   自定义 Validator(实用)

第一步,你需要创建一个注解 Region。

@Target({FIELD}) // @Target:定义注解的作用目标(作用域)
@Retention(RUNTIME)   //@Retention是一个元注解(meta-annotation),用于定义注解的保留策略。注解可以在源代码、编译时和运行时保留,
@Constraint(validatedBy = RegionValidator.class)  //约束条件
@Documented  //如果一个注解@B,被@Documented标注,那么被@B修饰的类,生成文档时,会显示@B。如果@B没有被@Documented标准,最终生成的文档中就不会显示@B。
public @interface Region {

    String message() default "Region 值不在可选范围内";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};
}
第二步,你需要实现 ConstraintValidator接口,并重写isValid 方法。
public class RegionValidator implements ConstraintValidator<Region, String> {

    @Override
    public boolean isValid(String value, ConstraintValidatorContext context) {
        HashSet<Object> regions = new HashSet<>();
        regions.add("China");
        regions.add("China-Taiwan");
        regions.add("China-HongKong");
        return regions.contains(value);
    }
}
现在你就可以使用这个注解:
@Region
private String region;
 
springboot-guide/docs/advanced/SpringBoot-ScheduleTasks.md at master · CodingDocs/springboot-guide (github.com)
Spring Schedule 实现定时任务 如果我们需要自定义线程池执行话只需要新加一个实现SchedulingConfigurer接口的 configureTasks 的类即可,这个类需要加上 @Configuration 注解。

标签:异步,自定义,Region,数据类型,校验,regions,注解,拷贝
From: https://www.cnblogs.com/lengsong/p/17964860

相关文章

  • delphi firemonkey使用 TListbox 自定义列表数据(二StyleBook方式实现)
    上一篇用设计好界面后用代码添加稍微有些麻烦,所以改为用StyleBook设计好后添加Item界面上添加ListBox后改Item高度为100右键添加一条空白记录,观察高度,并且方便自定义编辑style样式默认添加一条ListBoxItem1Style1的样式,添加Layout布局到这个样式下,并且添加需要的控件进去la......
  • SparkSQL 自定义聚合函数[强类型] & DSL
    本文的前提条件:SparkSQLinJava参考地址:UserDefinedAggregateFunctions(UDAFs)1.声明列实体类packagecn.coreqi.entity;importjava.io.Serializable;publicclassUserimplementsSerializable{privateStringusername;privateLongage;publi......
  • 使用 TListbox 自定义列表数据(界面显示)
    界面设计如下启动时默认值procedureTForm1.FormCreate(Sender:TObject);begin//启动时隐藏模板Layout1.Visible:=False;//开启隔行变色ListBox1.AlternatingRowBackground:=True;end;Listbox添加Item代码如下procedureTForm1.AddItem(name:string;......
  • 使用TVertScrollbox自定义列表数据
    界面布局设置如下创建一个过程添加新项目procedureTForm1.AddItem(name:string;age:Integer);varlayout:TLayout;begin//设置姓名标签的文本Label3.Text:=name;//设置年龄标签的文本Label4.Text:=IntToStr(age);//克隆Layout1,并将克隆得到......
  • 计算机硬件-CPU-校验码
    计算机组成部分(冯诺依曼架构):5个部分,运算器、控制器、存储、输入设备、输出设备CPU的功能:程序控制、操作控制、时间控制、数据处理。CPU的组成:主要由运算器、控制器、寄存器和内部总线等部件组成运算器:执行所有的算数运算,如加减乘除等;执行所有的逻辑运算并进行逻辑测试,如与或......
  • SparkSQL 自定义聚合函数[强类型]
    本文的前提条件:SparkSQLinJava参考地址:UserDefinedAggregateFunctions(UDAFs)1.自定义实体类packagecn.coreqi.entity;importjava.io.Serializable;publicclassAverageimplementsSerializable{privatelongtotal;privatelongcount;publi......
  • SparkSQL 自定义聚合函数[弱类型]
    本文的前提条件:SparkSQLinJava代码如下1.自定义聚合函数packagecn.coreqi.udaf;importorg.apache.spark.sql.Row;importorg.apache.spark.sql.expressions.MutableAggregationBuffer;importorg.apache.spark.sql.expressions.UserDefinedAggregateFunction;import......
  • 异步FIFO设计
    同步FIFO设计思路方法1:使用计数器记录FIFO有效数据,从而产生空满信号方法2:指针空间扩大一倍,读写指针最高位相同为空,最高位不同,剩下数据位相同为满异步FIFO设计读写指针分别在各自的时钟域进行维护读空的时候需要在读时钟域进行判断,写满的时候需要在写时钟域进行判断......
  • SparkSQL 自定义函数
    本文的前提条件:SparkSQLinJava参考地址:ScalarUserDefinedFunctions(UDFs)完整代码packagecn.coreqi;importstaticorg.apache.spark.sql.functions.udf;importorg.apache.spark.SparkConf;importorg.apache.spark.sql.*;importorg.apache.spark.sql.expres......
  • JUC并发编程 用CompletableFuture 创建异步任务
    1CompletableFuture对Future的改进1.1CompletableFuture为什么会出现get()方法在Future计算完成之前会一直处在阻塞状态下,阻塞的方式和异步编程的设计理念相违背。isDene()方法容易耗费cpu资源(cpu空转),对于真正的异步处理我们希望是可以通过传入回调函数,在Future结束时自动......