【问题标题】:Versioning objects in Java applicationJava 应用程序中的版本控制对象
【发布时间】:2023-01-13 23:35:49
【问题描述】:

我的 Java 应用程序中有这个变量:

@Pattern(
    regexp = "^[a-zA-Z0-9-]{4,}$",
    message =
        "Alphanumeric characters and '-' only allowed. Must be at least four characters long.",
    groups = FormatCheck.class)
private String registration;

这很好,因为我目前有一个客户端发送与模式匹配的注册。将来我可能有多个客户端,所有客户端都有自己的注册模式。是否有可能以某种方式对变量或模式进行版本控制,以便我的所有客户都可以使用相同的变量,但每个客户都可以针对不同的模式进行验证?我想避免为每个使用自己模式的客户端创建新变量。

【问题讨论】:

  • 为什么?为什么哪个模式有效取决于客户端,而不是服务器?为每个客户创建新变量有什么问题?如果是,为什么不允许所有客户使用最通用的模式?我想我不明白这个问题。

标签: java spring-boot versioning


【解决方案1】:

由于注释是在编译时评估的,因此您不能将运行时变量用作参数,因为在编译期间运行时变量还没有值。

在您的情况下,您很可能需要创建一个 getter/setter 方法来执行模式匹配逻辑并返回 null 或在失败时抛出异常

【讨论】:

    猜你喜欢
    • 2012-08-19
    • 2014-03-25
    • 2014-10-26
    • 2015-11-01
    • 1970-01-01
    • 2021-07-23
    • 2013-08-30
    • 2017-05-18
    相关资源
    最近更新 更多