如何将库中的值连接为默认值并在应用程序明确定义属性后覆盖它
How to wire value in library as default and overwrite it once application defines properties explicitly
我试图创建一个电子邮件实用程序,它需要一些服务器属性。
所以我想创建一个包并让应用程序使用它。如果应用程序为电子邮件实用程序指定属性,它应该可以正常工作。如果应用程序不这样做,它应该也可以通过使用电子邮件实用程序中的默认属性来正常工作。这意味着应用程序不需要为该实用程序指定电子邮件属性。
由于应用程序是 spring mvc 或 spring 系列,是否可以使用 spring 注释 @Value 来做到这一点?或者它的最佳实践是什么?
示例:
Application:A , EmailUtils:E, Properties:P
- A 在 A 中没有给定 P 的情况下使用 E。在 E 中使用了 P。
- A 在 A 中使用给定 P 的 E。使用 A 中的 P。
ps:我不想在 util 中硬编码属性然后覆盖它,甚至将它们传递给构造函数。
在EmailUtils中的value注解中默认即可
@Value("${some.key:my default value}")
private String stringWithDefaultValue;
我试图创建一个电子邮件实用程序,它需要一些服务器属性。 所以我想创建一个包并让应用程序使用它。如果应用程序为电子邮件实用程序指定属性,它应该可以正常工作。如果应用程序不这样做,它应该也可以通过使用电子邮件实用程序中的默认属性来正常工作。这意味着应用程序不需要为该实用程序指定电子邮件属性。
由于应用程序是 spring mvc 或 spring 系列,是否可以使用 spring 注释 @Value 来做到这一点?或者它的最佳实践是什么?
示例: Application:A , EmailUtils:E, Properties:P
- A 在 A 中没有给定 P 的情况下使用 E。在 E 中使用了 P。
- A 在 A 中使用给定 P 的 E。使用 A 中的 P。
ps:我不想在 util 中硬编码属性然后覆盖它,甚至将它们传递给构造函数。
在EmailUtils中的value注解中默认即可
@Value("${some.key:my default value}")
private String stringWithDefaultValue;