库(JAR)属性spring的默认值

时间:2016-02-01 21:54:27

标签: java spring properties

我有一个需要发送电子邮件的应用程序。我可能稍后需要在第二个应用程序中发送电子邮件,因此我尝试使用库来重复使用它。

我的应用程序是通过Spring-boot完成的。 我的库只包括Spring-core,Spring-context和Spring-test。

这是我库中的EmailUtils:

@Named
public class EmailUtils {

  @Value("${from}")
  private String from;

  @Value("${to}")
  private String to;
  ...
}

我想在库中有一个默认文件application.properties:

from=default-from
to=default-to

现在我想如果我的应用程序spring boot做了类似的事情:

@Service
public void EmailService {

  @Inject
  private EmailUtils emailUtils;
  ...
} 

我想如果我不在我的应用程序中定义一个新的application.properties来从库中获取默认值,但可以通过在我的Spring-boot应用程序中使用application.properties来覆盖它们。

信息:我的Spring-boot应用程序有ScanComponent包(仅提及它)。但我的图书馆什么都没有。我不知道是否必须使用beans.xml并定义ContextPlaceHolder ......

我有点失落,也许还有更好的方法吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

如果我正确理解您的问题 - 您希望为@Value带注释的属性指定默认值。您只需使用格式@Value("${property_key:default value}")即可完成此操作,因此如果您希望默认from值为me@me.comtoyou@you.com,则您的代码将为读:

@Named
public class EmailUtils {

  @Value("${from:me@me.com}")
  private String from;

  @Value("${to:you@you.com}")
  private String to;
  ...
}