【发布时间】:2018-07-01 11:31:26
【问题描述】:
我正在创建一个 post-spring web 服务端点,并在其他变量中获取一个包含大约 7-8 个字符串变量的对象。在验证请求时,我需要在每个条件上测试相同的条件,例如-
- 条件 1 为 true 继续,否则抛出异常。
- 条件 2 为 true 继续否则抛出异常。
- 条件 3 为真继续否则抛出异常
3-4 更多的业务逻辑验证,就像上面一样,它有很多 if-else,一种方法是创建一个方法并按顺序传递这些变量,这并没有太大的区别。我想知道是否有办法将所有这些验证写入其他 java 文件并创建一个自定义注释,如 @CustomValidator,我可以将其添加到每个变量上,它会根据写入在其他 java 文件中的验证逻辑自动测试值或抛出相关的例外。
- 我无法使用休眠验证器。
- 这绝对可以通过 Hibernate 验证器或其他一些框架来完成,但我想用老式的核心 Java 方式来完成。
【问题讨论】:
-
听起来很适合JSR-303。其中Hibernate Validator 是参考实现。不过也有Apache BVal。
-
@Jaims 感谢您的回复,但正如我所说,我不能使用休眠,而 Apache BVal 似乎经常使用它,我不能使用它,而且它只会解决基本的 NotNull、NotEmply 和 Size 问题.我仍然需要执行其他验证。
-
@shrikant.sharma 您的“我不能使用 bean 验证”看起来像是一个任意限制。它是标准的、久经考验的、适合这项工作的工具。 为什么你不能使用它?您为什么不采取必要的措施来简单地消除这种任意限制?
-
@JBNizet 因为我们有 nexus 存储库,并且在其中添加新依赖项需要大量批准。
-
这是我能想象到的最无效的理由。如果批准使用标准的、免费的、开源的、官方支持的、适当的依赖项比重新开发等效依赖项需要更多的时间,那么你可能应该找一个新的雇主,或者只是耐心等待:他们是那些让公司失去时间和金钱的人,而不是你。他们的问题需要解决,而不是你的。
标签: java validation annotations