如何在Spring中强制要求属性文件中的属性?

Pau*_*des 8 java error-handling spring javabeans

我有一个带有以下节点的ApplicationContext.xml文件:

<context:property-placeholder 
location="classpath:hibernate.properties, classpath:pathConfiguration.properties" />
Run Code Online (Sandbox Code Playgroud)

它指定properties我的应用程序将使用这两个文件.

在内部pathConfiguration.properties,定义了一些路径,例如:

PATH_ERROR=/xxx/yyy/error
PATH_SUCCESS=/xxx/yyy/success
Run Code Online (Sandbox Code Playgroud)

一个PathConfigurationbean的每个路径的制定者.

问题是:当未定义某些必需路径时,不会引发任何错误.我应该如何以及在哪里处理这个问题?

ste*_*ase 6

PropertyPlaceholder的标准行为通过<context:property-placeholder ... />在某个地方需要时无法解析属性时抛出异常,只要您不进行其他配置即可.

对于你的情况,如果你有一个需要这样的属性的Bean,它将在无法解析值时失败.例如这样:

public class PropertiesAwareBean {

  @Value("${PATH_ERROR}")
  private String errorPath;

  String getErrorPath() {
    return errorPath;
  }

}
Run Code Online (Sandbox Code Playgroud)

如果您想放松PropertyPlaceholder并且在无法解析属性时不使其抛出异常,则可以将PropertyPlaceholder配置为忽略此类不可解析的属性<context:property-placeholder ignore-unresolvable="true" ... />.