java - 如何将库中的值连接为默认值并在应用程序显式定义属性后覆盖它

标签 java spring inheritance hierarchy

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

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

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

  1. A 使用 E,而 A 中没有给定 P。使用 E 中的 P。
  2. A 将 E 与 A 中给定的 P 一起使用。使用 A 中的 P。

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

最佳答案

只需将其默认为 EmailUtils 中的值注释即可

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

关于java - 如何将库中的值连接为默认值并在应用程序显式定义属性后覆盖它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51191258/

相关文章:

java - CURDATE() NOT IN(在 CheckIn 和 CheckOut 之间选择 CURDATE() 的房间)

java - Spring Boot JPA - 没有类型的合格bean

ios - uiviewcontroller 没有从 ios 中的父类导入

java - wait() 不会被notifyAll() 中断

java - 尝试在位于其他包中的子类中使用 protected 构造函数时,Eclipse 显示错误

java - 如何强制Spring Security更新XSRF-TOKEN cookie?

JAVA:如何限制一个类在一个级别上扩展

c++ - 在 C++ 中将变量传递给构造函数

java - 如何使用 Volley 获取并等待来自多个 url 的数据

java - 用于开发和生产的不同 URL。 (重新加载静态内容)