我们在spring中访问java属性,如下所示:
<property name="fileSizeLimit" value="${someProperty}" />
Run Code Online (Sandbox Code Playgroud)
豆宣称
int fileSizeLimit = 9999;
Run Code Online (Sandbox Code Playgroud)
如果属性文件中缺少"someProperty",如何设置默认值?
ATM,我们得到NumberFormatException,因为spring使用属性"someProperty"的名称调用int-setter.设置属性后,一切正常.
可以通过"属性"定义默认属性值,以使属性文件中的重写定义可选.如果配置程序无法解析具有任何指定属性的占位符,则它还将检查系统属性(例如"user.dir").这可以通过"systemPropertiesMode"自定义.
这是否设置了查找属性的顺序?我在哪里配置?
TIA,Bastl.
sou*_*ica 15
对于第一个问题,您可以使用以下语法为占位符设置默认值,其中9999是默认值.
<property name="fileSizeLimit" value="${someProperty:9999}" />
Run Code Online (Sandbox Code Playgroud)
对于第二个问题,属性systemPropertiesModeName确定属性的解析顺序,属性文件与系统属性.例如,
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
Run Code Online (Sandbox Code Playgroud)
告诉PropertyPlaceholderConfigurer在属性文件之前查看系统属性.
systemPropertiesModeName的值为:
SYSTEM_PROPERTIES_MODE_FALLBACK (default)
Check system properties if not resolvable in the specified properties.
SYSTEM_PROPERTIES_MODE_NEVER
Never check system properties.
SYSTEM_PROPERTIES_MODE_OVERRIDE
Check system properties first, before trying the specified properties.
Run Code Online (Sandbox Code Playgroud)
我通常在占位符中使用SYSTEM_PROPERTIES_MODE_OVERRIDE和默认值,所以顺序是
归档时间: |
|
查看次数: |
21964 次 |
最近记录: |