标签
我们刚刚发布了Hibernate Search 7.0.0.Beta1,这是Hibernate Search下一个主要版本的第一个Beta版本。
这个新主要版本的主题是升级:以JDK 11为基准,切换到Jakarta EE和最新的Hibernate ORM,将Lucene后端升级到下一个主要版本(Lucene 9)。
除此之外,7.0.0.Beta1还包括与Amazon OpenSearch Serverless的实验性兼容性,发布了一个包含其所有公共组件的Hibernate Search BOM,等等。
我们过去在Hibernate Validator中包含的约束非常保守,但最近我们改变了这项政策,并希望内置更多的约束。
当然,我们不会接受一切:提出的约束必须是通用且定义明确的,但我们的想法是让Hibernate Validator“开箱即用”提供更多功能。
这篇文章将对那些有一些有趣的定制Bean Validation约束并希望与社区分享的人有所帮助。
[ ... ]
今天我们将讨论Hibernate Validator以及如何以完全自包含的方式提供您自己的约束和/或验证器。也就是说,将其全部打包到自己的JAR文件中,以便其他人只需将其添加到类路径即可使用您的库。
此功能基于Hibernate Validator对Java的ServiceLoader机制的使用,该机制允许注册额外的约束定义。但关于细节稍后再说。
创建自己的库并共享约束的现实场景是什么?比如说,你正在构建一个包含用户可能希望验证的数据类的库。由于很难跟踪所有这样的库并为他们编写/维护所有这些约束,因此Hibernate Validator为这样的库的作者提供了编写和共享他们自己的验证扩展的可能性。这些扩展可以被Hibernate Validator拾取并用于验证你的数据类。
[ ... ]