在 Spring Boot 3 中切换到 jakarta 时,继续遵守 javax.validation.constraints.* 注释[重复]

问题描述 投票:0回答:2

我们正在迁移到 Spring Boot 3,并随之迁移到 jakarta-ee。

我遵循了https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#jakarta-ee,但我不确定如何继续解决以下问题:

  • 有什么方法可以在切换到 jakarta 时继续遵守 javax.validation.constraints.* 注释吗?

我们的用例:

  • 我们共享 Pojo-Libraries,它描述了客户端和服务器之间共享的对象。例如,REST 接口之间的通用表示或通过 Kafka 作为 JSON 发送的事件模型
  • 事件模型描述了一些保证,例如“该字段可为空,该字段为非空”等,并且具有例如
    javax.validation.constraints.NotNull
    注释
  • 客户端通常不仅使用这些 pojo 进行反序列化,还可能依赖于验证方面,例如在不遵守验证时拒绝有效负载

想要搬到 jakarta-ee 的客户仍如何使用

javax.validation.constraints.NotNull

spring spring-boot bean-validation jakarta-migration
2个回答
0
投票

javax 无法与 boot 3 一起使用,只需切换到 jakarta.validation.constraints.NotNull,Spring 6 ( Boot 3 )、Tomcat 10 和 Hibernate Validator 的全部目的就是淘汰 javax 包并用 jakarta 替换它们。这些库的较新版本与 javax 包不兼容。

即使从您在问题中共享的链接中也显示:“如果您应该始终使用 jakarta.servlet:jakarta.servlet-api 而不是 javax.servlet:javax.servlet-api。 除了依赖坐标更改之外,Jakarta EE 现在使用 jakarta 包而不是 javax。更新依赖项后,您可能会发现项目中的>>导入语句需要更新<<

验证在较新版本的 Hibernate Validator 中的工作方式相同,尝试保留已删除的注释版本是没有意义的,该版本不再存在或不兼容。


-2
投票

添加“spring-boot-starter-validation”解决了我的问题。 您可以在https://github.com/springdoc/springdoc-openapi/issues/1979找到它。

© www.soinside.com 2019 - 2024. All rights reserved.