2021SC@SDUSC
DophinScheduler dao模块下实体代码详情分析
这篇分析一下几个实体中与最基本实体相比有新东西的地方
AlertPluginInstance警报插件实例:
AlertPluginInstance类中定义了三个在不同传递参数情况下的实例初始化构造函数,其中第一个为不传递参数,则只初始化creareTime和updateTime:
其余为普通的get()、set()数据成员函数
Command指令实体:
1.多导入了dolphinscheduler官方提供的包中的方法
2.本实体中几个特殊的数据成员:
流程定义代码
指令参数(json格式)
任务依赖类型、警告类型
failurestrategy类型的失败策略
Priority类型的进程实例优先级
构造函数定义了一个不提供参数的和一个提供所有参数的
Environment环境实体
引入了
JsonFormat注解是jackson包里面的一个注解,是一个时间格式化注解,比如我们存储在mysql中的数据是date类型的,当我们读取出来封装在实体类中的时候,就会变成英文时间格式,而不是yyyy-MM-dd HH:mm:ss这样的中文时间,因此我们需要用到JsonFormat注解来格式化我们的时间。
在ceateTime和updataTime这里用到了这个注解
MonitorRecord实体
主要是对数据库进行监管记录
Flag类型的state主要用来监控数据库运行的是否正常
ProcessAlertContent实体
引入
实体类上使用@JsonInclude过滤为空的字段
拓展:
1.实体类上使用@JsonPropertyOrder对字段进行排序
2.在需要转换的字段上使用@JsonSerialize并自定义json序列化
引入
@JsonProperty:此注解作用于属性上,作用是把该属性的名称序列化成另一个自己想要的名称
对属性名进行重命名,在java里我们墨守规定驼峰命名,但是在一些特殊的场合下,比如数据库是下划线等,再此我们就可以进行映射
对属性名称重命名,比如在很多场景下Java对象的属性是按照规范的驼峰书写,但在数据库设计时使用的是下划线连接方式
拓展:
1.@JsonIgnore注解用于属性或者方法上,用来完全忽略被注释的字段和方法对应的属性,即便这个还有其它注解,一般标记在属性或者方法上,返回的json数据不包含被该注解引用的属性或者方法
2.@JsonIgnoreProperties可以帮我们忽略类中不存在的字段