Java spring属性的库(JAR)默认值
我有一个需要发送电子邮件的应用程序。我以后可能需要在第二个应用程序中发送电子邮件,所以我尝试创建一个库来重复使用它 我的应用程序是用Spring boot完成的。 我的库只包括Spring核心、Spring上下文和Spring测试 这是我的库中的EmailUtils:Java spring属性的库(JAR)默认值,java,spring,properties,Java,Spring,Properties,我有一个需要发送电子邮件的应用程序。我以后可能需要在第二个应用程序中发送电子邮件,所以我尝试创建一个库来重复使用它 我的应用程序是用Spring boot完成的。 我的库只包括Spring核心、Spring上下文和Spring测试 这是我的库中的EmailUtils: @Named public class EmailUtils { @Value("${from}") private String from; @Value("${to}") private String to
@Named
public class EmailUtils {
@Value("${from}")
private String from;
@Value("${to}")
private String to;
...
}
from=default-from
to=default-to
我希望库中有一个默认文件application.properties:
@Named
public class EmailUtils {
@Value("${from}")
private String from;
@Value("${to}")
private String to;
...
}
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
我有点失落,也许有更好的办法吗
谢谢。如果我正确理解了你的问题-你想为你的
@value
注释属性指定一个默认值。您只需使用格式@Value(${property\u key:default Value}”)
即可做到这一点,因此,如果您希望中的默认值为me@me.com
和to
to beyou@you.com
您的代码应为:
@Named
public class EmailUtils {
@Value("${from:me@me.com}")
private String from;
@Value("${to:you@you.com}")
private String to;
...
}
如果我正确理解了您的问题-您希望为@value
注释属性指定默认值。您只需使用格式@Value(${property\u key:default Value}”)
即可做到这一点,因此,如果您希望中的默认值为me@me.com
和to
to beyou@you.com
您的代码应为:
@Named
public class EmailUtils {
@Value("${from:me@me.com}")
private String from;
@Value("${to:you@you.com}")
private String to;
...
}
可以说,最好的解决方案是将Spring完全排除在您的库之外,通过构造函数(或setters)将从
和设置为
,并让客户提供值,例如,如果他们愿意,从属性文件中读取值。是的,我同意您的看法,但由于所有环境都是由Spring完成的。。。我认为这无关紧要。可以说,最好的解决方案是将Spring从您的库中完全排除,通过构造函数(或setters)将从
和设置为
,然后让客户提供值,例如,如果他们愿意,从属性文件中读取。是的,我同意你的看法,但是由于所有的环境都是在春天完成的。。。我想没关系。