Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java spring属性的库(JAR)默认值_Java_Spring_Properties - Fatal编程技术网

Java spring属性的库(JAR)默认值

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

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

我的应用程序是用Spring boot完成的。 我的库只包括Spring核心、Spring上下文和Spring测试

这是我的库中的EmailUtils:

@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 be
you@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 be
you@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)将
设置为
,然后让客户提供值,例如,如果他们愿意,从属性文件中读取。是的,我同意你的看法,但是由于所有的环境都是在春天完成的。。。我想没关系。