首页 > 解决方案 > 如何将库中的值作为默认值连接并在应用程序明确定义属性后覆盖它

问题描述

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

由于应用程序是spring mvc或spring系列,是否可以使用spring注释@Value来做到这一点?或者它的最佳实践是什么?

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

  1. A use E without given P in A. 使用 E 中的 P。
  2. A use E with given P in A. P in A 被使用。

ps:我不想在util中硬编码属性然后覆盖它,甚至将它们传递给构造函数。

标签: javaspringinheritancehierarchy

解决方案


只需将其默认设置在 EmailUtils 中的值注释上

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

推荐阅读