Spring系列注解补充

@JsonProperty

@JsonProperty 是jackson-databindjar包提供的注解,用于实体类的属性上,功能是把属性名称转换为另一个名称(即 两个名称都指向同一个变量值)

该注解主要用于实体类的属性上,作用可以简单的理解为在反序列化的时候给属性重命名(多一个名字来识别)

详情可参考@JsonProperty
@JsonProperty注解代码

@Target({ElementType.ANNOTATION_TYPE, ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@JacksonAnnotation
public @interface JsonProperty
{
    /**
     * 默认值
     */
    public final static String USE_DEFAULT_NAME = "";

    /**
     * 默认序号
     */
    public final static int INDEX_UNKNOWN = -1;
    
    /**
     * 逻辑名称值
     */
    String value() default USE_DEFAULT_NAME;

    /**
     * 命令格式,可使用xml等
     */
    String namespace() default "";

    /**
     * 是否必须,默认否
     */
    boolean required() default false;

    /**
     * 序号
     */
    int index() default INDEX_UNKNOWN;

    /**
	 * 默认值
     */
    String defaultValue() default "";

    /**
     * 可选属性变量
     */
    Access access() default Access.AUTO;
    
    /**
     * 属性可选变量
     */
    public enum Access
    {
        /**
         * 自动
         */
        AUTO,

        /**
         * 只读模式,即序列化
         */
        READ_ONLY,

        /**
         * 只写模式,即反序列化
         */
        WRITE_ONLY,

        /**
         * 读写模式,即序列化和反序列化都可以
         */
        READ_WRITE
        ;
    }
}

@Scheduled

SpringBoot自带的定时任务注解,可以通过注解配置快速实现方法的定时调度,直接在方法上加@Scheduled注解即可。

注解参数

1.cron参数

这个参数是最经常使用的参数,表示接收一个cron参数,cron它是一个表达式,最多接收7个参数,从左到右分别表示:秒 分 时 天 月 周 年;参数以空格隔开,其中年不是必须参数,可以省略。
在这里插入图片描述
注意: 使用时需要在类上添加注解@EnableScheduling,表示开启定时任务

cron参数的意义:
在这里插入图片描述
常用通配符:
*:表示所有值 比如用在日 表示每一天。

?:表示不指定值 比如周配置 表示不指定星期几执行。

/:表示递增触发 比如 用在分 5/20 从第五分钟开始 每增加20分钟执行一次。

-:表示区间 比如用在 1-6 表示一月到六月执行。

2.zone参数

zone能够指定获取的时区,默认是空,表示使用服务器所在时区,比如Asia/BeiJingi或者Asia/Shanghai。

3.fixedDelay

fixedDelay表示上次调用结束后与下次调用之间的固定时间,单位是毫秒。

注意

@Scheduled使用时,是在本机进行任务调度,但是目前几乎所有的应用为了增加发负载量,都是使用多机部署。这就导致了一个非常严重的分布式问题:在每一台机器上都会在同时执行定时调度任务,可能产生很多重复数据或者导致系统出现其他的业务逻辑BUG,所以在使用@Scheduled进行任务调度时,一定要配合redis的分布式锁来使用,让定时调度任务只在一台机器上执行,避免BUG出现。

@AllArgsConstructor

@AllArgsConstructor生成该类下全部属性的构造方法。
在springboot中可以代替@Autowired注解的使用
在这里插入图片描述

@Builder

用来生成对象,并可以为对象链式赋值

@Accessors

有三个属性:
fluent:不写默认为fasle,当该值为true时,对应字段的getter方法前面就没有get,setter方法前面就不会有set
在这里插入图片描述
chain:不写默认为fasle,当该值为true时,对应字段调用setter方法后会返回当前对象
在这里插入图片描述
prefix:该属性是一个字符串数组,当该数组有值时,表示忽略字段中对应的前缀,生成对应的 getter 和 setter 方法。
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/219610.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端依赖下载速度过慢解决方法,nrm 镜像管理工具

npm 默认镜像 :https://registry.npmjs.org/ 问题 使用 npm install 安装依赖的时候,受网络的限制,速度会很慢。 解决 使用国内镜像代理。 nrm nrm 是镜像源管理工具; 1. 安装 nrm npm install nrm --global# 查看镜像源列…

金蝶云星空对接泛微E9流程打通示例

泛微E9对接金蝶云星空,主要介绍由泛微OA发起审批后把审批结果和审批意见回传给到金蝶云星空财务进行做账处理。实现内部办公一体化(使用案例场景:报销申请,付款申请等)。 数据源系统:泛微OA-E9 泛微OA&…

搜维尔科技:AI时代,迈向2030元宇宙数字人戏曲教育数字化思维、战略与未来!

一场关于中国传统戏曲与数字媒体交汇的探讨之旅将于今日在清华大学开讲,本次活动旨在推动AI时代大背景下,利用元宇宙、数字人等创新技术焕发中国传统戏曲全新活力。 讲座以“AI时代,迈向2030元宇宙数字人戏曲教育数字化思维、战略与未来”为主…

「词令」2023年12月5日支付宝蚂蚁庄园今日问题答案是什么?12.5蚂蚁庄园今日问题正确答案

问题:我国哪个城市有“四面荷花三面柳,一城山色半城湖”的美誉? 选项:A、济南 B、泉州 答案:济南 解析:一城山色:千佛山在城南,为附近最高的山,全城人都能看到它苍翠的…

Docker镜像构建:技术深度解析与实践

目录 ​编辑 一、Docker镜像基础与优化 Docker镜像概念 Dockerfile详解 层级缓存机制 二、镜像构建的高级技术 多阶段构建 安全性考量 三、构建性能优化与调试 性能优化策略 构建过程调试 四、代码实战 实例:构建优化的Docker镜像 调试技巧 实例&…

敏捷开发迭代缺陷统计的重要性

在敏捷开发中,迭代缺陷统计具有重要性,对团队和项目具有多方面的影响: 早期发现和解决问题: 迭代缺陷统计允许团队及时识别和定位在迭代中出现的问题。这有助于早期解决问题,避免问题扩大化,并最大程度地减…

Java Websocket实现即时通讯功能入门教程

近年来,即时通讯(Instant Messaging)已经成为了人们日常生活中不可缺少的一部分。而Java Websocket技术则提供了一种简便高效的方式来实现即时通讯功能。本文将介绍如何使用Java Websocket来实现即时通讯,并提供具体的代码示例。 …

【C语言】分支语句详解

目录 一、C语言语句类型 1.语句是什么 2.C语言的五类语句 二、分支语句 1. if语句 a. if语句的基本语法结构 b.悬空else 2.switch语句 a.switch语句的语法形式 b.default语句 一、C语言语句类型 1.语句是什么 在C语言中,语句是以分号结尾的字符序列&#…

陀螺仪防抖术语

陀螺仪防抖术语 fov 视场角 drift 零偏   MotionFusion即运动传感器的融合补偿,对陀螺仪、加速度计等运动测量器件的数据 进行预处理,通过标定和补偿,为防抖提供校准后的陀螺仪数据 ratio 系数 gyro 陀螺仪 calibration 校准 标定 DIS&…

开发与AI的邂逅

目录 一、前言 二、百度文心一言 三、阿里通义灵码 3.1.工具介绍 3.2.产品功能 3.3.配置流程 3.4.适用范围 3.5.收费标准 3.6.注意事项 一、前言 前段时间,由OpenAI公司研发的一款聊天机器人程序ChatGPT(全名:Chat Generative …

CLIP在Github上的使用教程

CLIP的github链接:https://github.com/openai/CLIP CLIP Blog,Paper,Model Card,Colab CLIP(对比语言-图像预训练)是一个在各种(图像、文本)对上进行训练的神经网络。可以用自然语…

千方百计阻止内网崩溃:上海迅软DSE答疑深度解析攻击后果

如今企业数据安全已成为一大议题,内网安全作为企业数据安全的第一步,一旦遭到攻击有多严重? 1.数据泄露:非法攻击企业内网者可能获取到重要的公司数据,包括客户信息、财务数据、知识产权等,导致隐私泄露和经…

linux系统下农场种菜小游戏!

linux系统下农场种菜小游戏! 今天给大家分享一个linux系统下一个简单的小游戏 源码如下,在linux系统下创建一个.sh的脚本文件,复制粘贴进去即可! #!/bin/bash# 初始化变量 vegetables("生菜" "西兰花" &qu…

Netty03-核心组件NioEventLoopGroup解读

NioEventLoopGroup 可以看到NioEventLoopGroup继承了MultithreadEventExecutorGroup并且实现了EventLoopGroup接口,而这两个类被ExecutorService修饰,所以NioEventLoopGroup实际上是一个线程池,池中的对象其实就是单个的NioEventLoop。 源码…

Comprehension from Chaos: Towards Informed Consent for Private Computation

目录 笔记后续的研究方向摘要引言 Comprehension from Chaos: Towards Informed Consent for Private Computation CCS 2023 笔记 本文探讨了用户对私有计算的理解和期望,其中包括多方计算和私有查询执行等技术。该研究进行了 22 次半结构化访谈,以调查…

DataGrip连接虚拟机上Docker部署的Mysql出错解决

1.1 首先判断CentOS的防火墙,如果开启就关闭 //查看防火墙状态 systemctl status firewalld //关闭防火墙systemctl stop firewalld.service//关闭防火墙开机自启systemctl disable firewalld.service而后可以打开DataGrip连接了,如果连接不上执行如下…

如何衡量和提高测试覆盖率?

衡量和提高测试覆盖率,对于尽早发现软件缺陷、提高软件质量和用户满意度,都具有重要意义。如果测试覆盖率低,意味着用例未覆盖到产品的所有代码路径和场景,这可能导致未及时发现潜在缺陷,代码中可能存在逻辑错误、边界…

两电脑共享鼠标键盘方案

一开始使用的是shareMouse 但是需要注册还有很多不稳定问题 后来想买个双拷线,又太贵,感觉不值的。 再后来,发现微软有自己的系统上的 共享方案 ,叫做 Mouse without Borders ,而且是免费的,只能在window电脑上使用…

一张网页截图,AI帮你写前端代码,前端窃喜,终于不用干体力活了

简介 众所周知,作为一个前端开发来说,尤其是比较偏营销和页面频繁改版的项目,大部分的时间都在”套模板“,根本没有精力学习前端技术,那么这个项目可谓是让前端的小伙伴们看到了一丝丝的曙光。将屏幕截图转换为代码&a…

12.5单端口RAM,JS计数器,流水线乘法器,不重叠序列检测器(状态机+移位寄存器),信号发生器,交通灯

单端口RAM timescale 1ns/1nsmodule RAM_1port(input clk,input rst,input enb,input [6:0]addr,input [3:0]w_data,output wire [3:0]r_data );reg [6:0]mem[127:0];integer i;always (posedge clk or negedge rst) beginif(!rst) beginfor (i0; i<127 ; ii1) beginmem[i]…