【问题标题】:Is there any option to set Default value using @Value in java spring properties?是否有任何选项可以在 java spring 属性中使用 @Value 设置默认值?
【发布时间】:2020-02-20 21:07:21
【问题描述】:

我正在使用 Spring 使用 @Value 为 DTO 属性分配默认值。 我有两个 DTO 类:

public class Student {
  @Value("10") // default value of id should be "10"
  private LookupDTO emp;
  private int totalMark;
  private string sub;
}

public class lookUpDTO {
  private String id;
  private String name;
}

如何使用@Valueid 的默认值指定为10

注意:lookUpDTO 也被其他 DTO 使用,所以我不能直接在lookUpDTO 中使用@Value

提前致谢。

【问题讨论】:

    标签: java spring default-value dto


    【解决方案1】:

    这个怎么样:

    @Value("${some.key:my default value}")
    private String stringWithDefaultValue;
    

    请参阅this 以获取更多参考。

    【讨论】:

      【解决方案2】:

      如果 id 属性实际上是一个值,那么是的。你可以告诉 Spring 注入这个值或者使用默认值。

      @Value("${some.key:my default value}")
      private String id;
      

      但是,由于您只想要默认值而不是注入值,@Value 注释不是您想要的。相反,您可以在 LookupDTO 中初始化 id,Spring 将用传入的值替换它。

      public class LookupDTO {
          private String id = "10";
          private String name;
      
          // get, set, etc...
      }
      

      如果此默认值与其他用法冲突,您将不得不复制该类或在阅读时处理默认值。

      【讨论】:

        【解决方案3】:

        你可以像这样使用@Value:

        public class Student {
          @Value("${some.key:10}")
          private LookupDTO emp;
          private int totalMark;
          private string sub;
        }
        

        【讨论】:

          猜你喜欢
          • 2010-12-12
          • 2015-09-16
          • 1970-01-01
          • 2021-03-08
          • 2019-04-05
          • 1970-01-01
          • 2012-08-13
          • 2011-03-06
          • 2017-05-11
          相关资源
          最近更新 更多