Spring 中的 PropertyPlaceHolder

2023-12-07

我们在 spring 中访问一个 java 属性,如下所示:

<property name="fileSizeLimit" value="${someProperty}" />

豆子声明

int fileSizeLimit = 9999;

如果属性文件中缺少“someProperty”,如何设置默认值?

ATM,我们得到 NumberFormatException 因为 spring 使用属性名称“someProperty”调用 int-setter。设置属性后,一切正常。

http://static.springsource.org/spring/docs/1.1.5/api/org/springframework/beans/factory/config/PropertyPlaceholderConfigurer.html says:

可以通过“属性”定义默认属性值,以进行覆盖定义 在属性文件中可选。配置程序还将检查系统属性 (例如“user.dir”)如果它无法解析具有任何指定的占位符 特性。这可以通过“systemPropertiesMode”进行定制。

这是否设置了查找属性的顺序?我在哪里配置这个?

蒂亚,巴斯特尔。


对于第一个问题,您可以使用以下语法设置占位符的默认值,其中 9999 是默认值。

<property name="fileSizeLimit" value="${someProperty:9999}" />

对于第二个问题,属性 systemPropertiesModeName 确定解析属性(属性文件与系统属性)的顺序。例如,

<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>

告诉 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.

我通常在占位符中使用 SYSTEM_PROPERTIES_MODE_OVERRIDE 和默认值,因此顺序是

  1. 系统属性
  2. 属性文件
  3. 占位符默认值
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring 中的 PropertyPlaceHolder 的相关文章

随机推荐

  • 使用 CSS 将图像水平居中

    我正在尝试使用 css 将图像水平居中 我使用以下 HTML 代码在屏幕上显示我的图像 div class loading invisible img class loading src logo png div 我正在裁剪图像 因为我只想
  • Gzip 不工作,服务器 2012,IIS 8

    在 Windows Server 2012 标准 上的 IIS 8 上激活 Gzip 时出现问题 所以我激活了Windows功能中的压缩 我选中了 IIS 中的两个复选框 压缩 动态和静态 但仍然没有可用的 Gzip 但是 在我的本地主机
  • 使用python分割多页tiff图像

    我有一个功能可以分割多页 tiff from PIL import Image ImageSequence im Image open Sample tiff for i page in enumerate ImageSequence It
  • 如何编码Realm的List<>类型

    我正在尝试将 Realm 数据库编码为 JSON 一切正常 除了List lt gt 编码 所以我的问题是 你会如何编码List lt gt 因为List不符合可编码更近可解码协议 现在我正在这样做 objcMembers class Us
  • 动态 ng-init 变量 - Angularjs

    coffee FooCtrl gt scope products Product query html div div div class slideshow img div div 我想做这样的 但是ng init images prod
  • 在 AJAX 风格 jQuery UI 选项卡中加载的 jQuery UI 对话框窗口

    AJAX 选项卡工作得非常好 这部分非常简单 但是 让 AJAX UI 对话框模式窗口触发链接并不成功 任何对此的帮助将不胜感激 没有什么比那个男人更容易的了 试试这个
  • 使用 Photoshop JavaScript 执行系统命令行提示符

    我正在使用 Photoshop 使用动作集自动处理图像 我已将 javascript 添加到我的操作集之一 我想使用 javascript 发出 Windows 命令行提示符 这可能吗 有某种类型的system exec 函数来做到这一点
  • 使用会话测试 Rails 控制器

    在我的应用程序中 我有一个会话控制器 现在我想测试用户控制器 只有登录后才能访问该控制器 我的问题是如何伪造会话 我已经尝试了很多 所以我希望你现在可以帮助我 应用控制器 helper method current user def aut
  • 使用AsyncTask加载位图图像

    当有人使用我的应用程序时 我试图在后台加载图像 我写的逻辑是这样的 public class ImageLoader extends AsyncTask
  • 为什么时区感知日期时间的 tzinfo 不等于时区?

    gt gt gt import pytz gt gt gt tz pytz timezone America Chicago gt gt gt dt naive datetime year 2017 month 6 day 6 gt gt
  • 如何使用 GWT EventBus

    我想知道如何使用EventBus或者是否有一些更好的解决方案来发送Event通过该项目 Widget1 has a Button Widget2 has a Label 当我按下按钮时 它应该会改变 这些小部件位于DockLayout Ro
  • 如何使用 FastAPI 允许 OpenAPI 规范(Swagger UI)中的特定参数值? [复制]

    这个问题在这里已经有答案了 我正在阅读有关的教程路径参数验证 我想允许字符串 a b 和 c 作为可能的参数值 我希望这些值显示在 OpenAPI 文档中 即FastAPI 的自动文档 这样 API 用户就不必猜测它们 如何使这些值显示在文
  • 验证库在 CMake 脚本中的 target_link_libraries 之前可用

    我有一个大型项目 由多个构建目标组成 它们之间具有依赖关系 结构类似于这样 Application lt Library I lt Library II lt Library III lt lt Library IV 存在多个这样的应用程序
  • 如何识别 CORS 预检请求?

    CORS 预检请求显然使用 OPTIONS 方法并具有 Origin 标头 然而 浏览器可以决定any添加 Origin 标头的 HTTP 请求 此外 OPTIONS 还可用于 CORS 之外的其他功能 如何 我可以识别exactly 没有
  • 无法停止运行带有 while (true) 循环的 Web 应用程序的 tomcat 服务器

    我正在开发一个要部署到 Tomcat 上的 Web 应用程序 当 Tomcat 启动时 我使用 servlet 在 web xml 中 调用 Java 类
  • 使用 oracle SQL 按分隔符位置拆分字符串

    我有一个字符串 我想在某个位置按分隔符分割该字符串 例如 我的字符串是F P O我正在寻找的结果是 因此 我想用最远的分隔符分隔字符串 注意 我的一些字符串是F O我的下面的 SQL 也可以正常工作并返回所需的结果 我写的SQL如下 SEL
  • maven在哪里安装jar包?

    因此 我将一个 Repo 从团队领导的工作空间复制到我的工作空间中 字面上使用unix CP 现在每当我跑步时mvn clean install 它将编译好的 jar 安装到他的工作空间中 我已经检查了存储库中的 pom xml 它没有明确
  • JavaScript 函数中的 this 指的是什么?

    function Box width height this width width this height height var myBox new Box 5 5 是什么new从技术上讲 关键字在这里做什么 它正在创建一个新功能吗 或者
  • django 1.7 migrate 出现错误“表已存在”

    我正在尝试应用迁移 但收到错误 django db utils OperationalError 1050 表 customers customer 已经存在 我通过发出以下命令得到这个 python manage py migrate 我
  • Spring 中的 PropertyPlaceHolder

    我们在 spring 中访问一个 java 属性 如下所示