我有一个需要发送电子邮件的应用程序。我可能稍后需要在第二个应用程序中发送电子邮件,因此我尝试使用库来重复使用它。
我的应用程序是通过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 ......
我有点失落,也许还有更好的方法吗?
谢谢。
答案 0 :(得分:2)
如果我正确理解您的问题 - 您希望为@Value
带注释的属性指定默认值。您只需使用格式@Value("${property_key:default value}")
即可完成此操作,因此如果您希望默认from
值为me@me.com
且to
为you@you.com
,则您的代码将为读:
@Named
public class EmailUtils {
@Value("${from:me@me.com}")
private String from;
@Value("${to:you@you.com}")
private String to;
...
}