Java 带条件的自定义注释

Java 带条件的自定义注释,java,validation,annotations,Java,Validation,Annotations,我正在创建一个post-spring web服务端点,并获取一个包含7-8个字符串变量和其他变量的对象。在验证请求时,我需要对每个请求测试相同的条件,例如- 条件1如果为真,则继续,否则将引发异常 条件2如果为真,则继续其他操作将引发异常 条件3 it true continue else引发异常 3-4更多的业务逻辑验证,就像上面所说的,还有很多if-else,1种方法是创建一个方法并按顺序对这些变量进行pas,这并没有多大区别。我想知道是否有办法在其他java文件中写入所有这些验证,并创

我正在创建一个post-spring web服务端点,并获取一个包含7-8个字符串变量和其他变量的对象。在验证请求时,我需要对每个请求测试相同的条件,例如-

  • 条件1如果为真,则继续,否则将引发异常
  • 条件2如果为真,则继续其他操作将引发异常
  • 条件3 it true continue else引发异常
3-4更多的业务逻辑验证,就像上面所说的,还有很多if-else,1种方法是创建一个方法并按顺序对这些变量进行pas,这并没有多大区别。我想知道是否有办法在其他java文件中写入所有这些验证,并创建一个自定义注释,如@CustomValidator,我可以在每个变量上添加该注释,它将根据其他java文件中写入的验证逻辑自动测试值,或抛出相关异常

  • 我不能使用hibernate验证程序
  • 这当然可以由Hibernate validator或其他框架完成,但我想用老式的核心java方式来完成

您可以尝试椭圆形框架。OVal是一个实用且可扩展的验证框架,适用于任何类型的Java对象(不仅仅是JavaBeans)。

听起来非常适合你。其中是参考实现。还有一个问题。@Jaims感谢您的回复,但正如我所说的,我不能使用hibernate,Apache BVal似乎经常使用它,而我不能使用它,另外它将只解决基本的NotNull、NotEmply和大小问题。我还需要执行其他验证。@shrikant.sharma您的“我不能使用bean验证”看起来像是一个任意的限制。这是标准的、经过战斗考验的、适合这项工作的工具。为什么你不能用它?你为什么不做需要做的事情来简单地删除这个任意的限制?@JBNizet因为我们有nexus存储库,在其中添加一个新的依赖项需要大量的批准。这是我能想象到的最无效的原因。如果批准使用一个标准的、免费的、开源的、官方支持的、适当的依赖关系要比重新开发一个同等的依赖关系花费更多的时间,那么你可能应该找一个新雇主,或者耐心一点:是他们让公司失去了时间和金钱,而不是你。他们的问题需要解决,而不是你的。