Java 如何将库中的值关联为默认值,并在应用程序明确定义属性后覆盖它

Java 如何将库中的值关联为默认值,并在应用程序明确定义属性后覆盖它,java,spring,inheritance,hierarchy,Java,Spring,Inheritance,Hierarchy,我试图创建一个电子邮件util,它需要一些服务器属性。 所以我想创建一个包,让应用程序使用它。如果应用程序为email util指定属性,它应该可以正常工作。如果应用程序不这样做,它也可以通过在email util中使用默认属性来正常工作。这意味着应用程序不需要为该util指定电子邮件属性 既然应用程序是SpringMVC或SpringFamily,那么使用SpringAnnotation@Value是否可以做到这一点?或者最佳实践是什么 例如: 应用程序:A,EmailUtils:E,属性:P

我试图创建一个电子邮件util,它需要一些服务器属性。 所以我想创建一个包,让应用程序使用它。如果应用程序为email util指定属性,它应该可以正常工作。如果应用程序不这样做,它也可以通过在email util中使用默认属性来正常工作。这意味着应用程序不需要为该util指定电子邮件属性

既然应用程序是SpringMVC或SpringFamily,那么使用SpringAnnotation@Value是否可以做到这一点?或者最佳实践是什么

例如: 应用程序:A,EmailUtils:E,属性:P

  • A使用E,但A中没有给定P。使用E中的P
  • A使用E和A中给定的P。A中使用P
    ps:我不希望在util中硬编码属性,然后覆盖它,甚至将它们传递给构造函数。

    只需在EmailUtils的值注释中默认它

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