emailjava中怎么校验_Java使用注解实现参数统一校验功能

03f35eb6dfbef269b5cf345bbdb7c714.png

在项目开发中,当使用配置文件的时候,需要对一些配置参数进行合法校验,如果不存在则会抛出异常或者提醒用户重新修改配置文件后运行系统。 以前的做法就是读取到配置文件后,每个配置项挨个检查,写多个if判断是否存在问题。 这样可以实现功能需要,但是后续的维护工作是一个很大的问题。 增加某一项配置后,需要增加一个if判断。 如果漏掉一个判断,则可能会因为取到一个语言层面的类型的默认值,就会造成一些不可挽回的损失。 由于java提供了注解和反射,这样可以利用注解把参数的规格及发生异常时候的提示信息通过注解组织起来。然后提供一个统一的校验工具函数实现对参数项的校验。

9108d2da4ff079f37c068faa34a0d860.png

实现目标

实现一个基本的配置项是否为空的统一的校验函数。 只对参数进行是否为空的判断,并且在为空的时候可以抛出指定的错误信息。

实现思路

定义一个注解,主要描述一个字段是否允许为空和一个为空时候的异常信息。定义如下:

class名:ValidField

17634277c5115d1f1abc8c6d72331e39.png

怎么使用呢, 直接在类的成员变量上面,增加注解及注解说明。例如:

df26dbfa7b7739081b0cda56fa58b871.png

具体实现的逻辑代码如下:

2e67639a1598f3475b536307c167625d.png

使用方法

041608aa4afbc727dab249220974e5fd.png

后续如果再增加配置项,直接声明配置属性即可, 不需要额外增加代码进行有效性校验代码。 如果有其他逻辑处理,也可以扩展注解和校验实现代码逻辑即可。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

原来保险丝熔断原理是这样的

如果电路中的保险丝熔断了,想亮起一个灯来指示,可以考虑用这个电路:这个电路的工作逻辑:当保险丝F1正常工作时,只亮起绿灯LED2。当保险丝F1熔断时,熄灭绿灯LED2,亮起红灯LED1,告诉人…

docker 定时重启脚本_使用 Go 添加启动脚本

简介实践困惑总结当前部分的代码简介虽然 Makefile 能很好的整合各种命令, 是一个非常方便的工具. 但启动脚本也是必不可少的, Makefile 更多用于开发阶段, 比如编译, 单元测试等流程.启动脚本的作用是控制程序的状态, 管理程序的启动, 停止, 查询运行状态等.实践直接上脚本了:…

为什么我的U盘空间变小了:图解 FAT 文件系统基础知识

作者 | 鱼鹰Osprey转自 | 鱼鹰谈单片机FAT 文件系统是什么,当你格式化 U 盘之后 U 盘发生了什么,为什么删除的文件还可以再恢复?买的 U 盘明明写着 16 G,实际却只有15 G,这里隐藏了什么事实?FAT 文件系统随…

如何DIY一款属于自己的HID键盘?

这是一个自定义游戏键盘,带有四个热插拔机械键和可自定义的RGB LED。它由STM32F103Cx微控制器供电,并通过Arduino IDE进行编程。文章末尾分享该项目资料。功能概述:快速STM32F103Cx微控制器可实现低输入延迟。USB全速,轮询速率为1…

arm9重启ssh服务_部署ssh使用rsa登录配置

什么是ssh?ssh专为远程登录会话和其他网络服务提供安全性的协议,利用ssh协议可以有效的防止远程管理过程中的信息泄露问题。使用ras公钥登录linux操作环境本地服务器:win10 远程服务器:centos 8 git环境生成rsa文件在windows机器上&#xff…

Android MVP模式简单易懂的介绍方式 (一)

Android MVP模式简单易懂的介绍方式 (一) Android MVP模式简单易懂的介绍方式 (二) Android MVP模式简单易懂的介绍方式 (三) 最近正在研究Android的MVP模式。看了很多文章,基本上都是长篇大论,一堆理论。但这里,我们不从理论出发&#xff0c…

什么?TTL信号也能高速稳定传输100m+?是的,你没有听错,量产电路推荐!

作者:周工,排版:晓宇微信公众号:芯片之家(ID:chiphome-dy)TTL传输100米,是不是很惊讶?早就看透了你的心思。传输100米,干嘛不用差分信号?就知道你…

the params of sys aud mod req msgs from TV

sys aud mode req msg sent from TV to AMP has a param of PA of src dev, while sys aud mode req msg sent from TV to AMP hasnt any param: aud sys mod request from TV: sys aud mod req(off) from TV: 转载于:https://www.cnblogs.com/aspirs/p/9708831.html

一定要坚强

想写这篇文章的时候,是因为确实知道发生了一些事情。我应该没有跟大家说过一件事情,我在TCL的时候,因为一件很不爽的事情,跟同事差点打架了,起因是因为睡觉的时候,他一直在打呼噜,然后我晚上我根…

致驱动工程师的一封信

引言 作为一个算是合格的驱动工程师,总是有很多话想说。代码看的多了总是有些小感悟。可能是吧。那就总结一下自己看的代码的一些感悟和技巧。如何利用你看的这些代码?如何体现在工作的调试中。作为驱动工程师,主要的工作就是移植各种驱动&am…

我的博客搭建(3)

hexo生成工程文件介绍 hexo插件 主题yilia 默认目录结构 具体参考 |--.deploy |--public |--scaffolds |--source |--themes |--_config.yml |--package.json .deploy :部署到GitHub上的内容目录public:输出的静态网页内容目录scaffolds:layo…

Oracle 10.2.0.4和10.2.0.5 中 OEM bug 8350262

一. Bug 问题表现 2011年安装Oracle 10.2.0.4 和10.2.0.5 版本时,在配置OEM的时候会报错。 忽略这个错误后,DB 可以成功创建或者升级。 MOS 上关于这个bug的说明,参考:[ID 1222603.1] 该bug 的表现为DBCA和DBUA 配置失败&#xff…

C语言不调用库函数画直线

昨天写了一个代码,使用C语言画三角形,既然写了那个,那就继续画一条直线,这个也很有意思。C语言不调用库函数画一个三角形直线的方程是如下图所示— — 斜率的范围(-∞,∞)既然知道公式了,我们就直接上代码吧&#xff0…

Shell教程

shell编程 shell历史执行脚本基本语法 变量文件名代换Globbing命令代换算术代换转义字符单引号双引号Shell脚本语法 条件测试条件分支 ifthenelifelseficaseesac循环 fordodonewhiledodonebreak和continue位置参数和特殊变量输入输出 echo管道tee文件重定向函数Shell脚本调试方…

尘埃落定,初心未改——一个大学生的电子大赛感悟

大家好,我是写代码的篮球球痴这篇文章是一位参加电子竞赛的总结文章,分享给大家。也欢迎更多的读者给我投稿,采纳后会有礼物赠送。01.一腔热血定乾坤2020年,怀着一腔热血踏入大学。比起高中那个被学业充斥的时代,迈入大…

ik分词和jieba分词哪个好_Python 中文 文本分析 实战:jieba分词+自定义词典补充+停用词词库补充+词频统计...

最近项目需要,实现文本的词频分析,折腾了几天才完成任务,有点成就感,最后整理总结一下这部分的内容,希望更多同僚受益。一.使用前准备环境:Python3.6安装结巴:pip install jiaba下载…

基于智能手机Android平台音乐播放器全程开发实战

基于android开发的智能手机平台的应用越来越多,目前也是一块比较热门的技术,本项目为基于android系统的音乐播放器项目,学习本项目的目的是为了让学员尽快掌握android领域的小应用的开发.项目从需求分析起步,完善了音乐播放器的所有功能,课程讲解深刻。 项目描述: 1、支持音乐在…

RAC集群故障恢复CRS-4047,CRS-4000

知识点: RAC是real application clusters的缩写,译为“实时应用集群”,是高可用性的一种,也是Oracle数据库支持网格计算环境的核心技术。 主要作用: (1)多节点负载均衡; (2)提供高可用:故障容错和无缝切换功…

急用物料怎么办???

咱们硬件工程师,一般都属于研发部。既然是研发,那么就具有一点研究的性质,有可能遇到预想不到的问题,在解决这些问题的过程中,难免会突然要用到一些器件。这时问题就来了,公司没有这个器件啊,但…

python 分位数计算代码_Python数据分析第十一节 数据运算

数据运算不仅仅是加减乘除的基本运算,还要包括数据的比较,汇总和相关性的计算等等,这一节我们将计算的问题帮大家汇总出来~目录一. 加减乘除运算二. 比较运算三. 汇总运算count 非空值计数sum 求和其他(均值,最大最小值…