当属性不存在时,Spring @Value 注释不使用默认值

2023-12-21

我尝试在构造函数的参数中使用 @Value 注释,如下所示:

@Autowired
public StringEncryptor(
    @Value("${encryptor.password:\"\"}") String password,
    @Value("${encryptor.algorithm:\"PBEWithMD5AndTripleDES\"}") String algorithm,
    @Value("${encryptor.poolSize:10}") Integer poolSize, 
    @Value("${encryptor.salt:\"\"}") String salt) {
...
}

当属性文件存在于类路径中时,属性会完美加载并且测试可以正常执行。但是,当我从类路径中删除属性文件时,我预计会使用默认值,例如 poolSize 将设置为 10 或算法设置为 PBEWithMD5AndTripleDES,但事实并非如此。

通过调试器运行代码(只有在更改后才有效)@Value("${encryptor.poolSize:10}") Integer poolSize to @Value("${encryptor.poolSize:10}") String poolSize因为它导致 NumberFormatExceptions)我发现默认值没有被设置,参数的形式如下:

poolSize = ${encryptor.poolSize:10} or

algorithm = ${encryptor.algorithm:"PBEWithMD5AndTripleDES"}

而不是预期的

poolSize = 10 or

algorithm = "PBEWithMD5AndTripleDES"

基于SPR-4785 https://jira.springsource.org/browse/SPR-4785${my.property:myDefaultValue} 等符号应该有效。但这并没有发生在我身上!

谢谢


属性占位符配置程序的初始化可能由于丢失属性文件而失败,因此占位符无法解析。您可以将其配置为忽略丢失的文件,如下所示(如果您使用context命名空间来配置它):

<context:property-placeholder ignore-resource-not-found="true" ... />

还有你不需要"..."围绕默认值。

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

当属性不存在时,Spring @Value 注释不使用默认值 的相关文章

  • 对话框上的 EditText 不返回任何文本

    我太累了 找不到错误 我没有发现任何错误 但我没有从 editText 收到任何文本 请看下面的代码 活动密码 xml
  • 来自数据库的 jfreechart 散点图

    如何使用java中的jfreechart绘制mysql数据库表中数据的散点图 我使用过 Swing 库 任何链接都会有帮助 我搜索了谷歌但找不到理解的解决方案 如果您有代码 请提供给我 实际上我确实做了条形图并使用 jfreechart 绘
  • Java:使用 HttpURLConnection 的 HTTP PUT

    如何执行 HTTP PUT 我正在使用的类似乎认为它正在执行 PUT 但端点将其视为我执行了 GET 我做错了什么吗 URL url new URL https HttpURLConnection conn HttpURLConnectio
  • 在文本文件中搜索单词并返回其频率

    如何在包含单词文本的文本文件中搜索特定单词并返回其频率或出现次数 使用扫描仪 String text Question how to search for a particular word in a text file containin
  • 如何在 JSP 中导入类?

    我是一个完全的JSP初学者 我正在尝试使用java util List在 JSP 页面中 我需要做什么才能使用除以下类之外的类java lang 使用以下导入语句进行导入java util List 顺便说一句 要导入多个类 请使用以下格式
  • 如何在没有 web.xml 的情况下将 Struts2 添加到 Web 应用程序?

    有人可以帮助我使用 Spring Boot 和 Struts2 进行最小项目设置吗 我已经使用 H2 数据库创建了一个 Spring Boot 应用程序 我还添加了一个h2Configuration类 以便我能够访问数据库localhost
  • Java 8 中函数式接口的使用

    这是来自的后续问题Java 8 中的 双冒号 运算符 https stackoverflow com questions 20001427 double colon operator in java 8其中 Java 允许您使用以下方式引用
  • Git 无法识别重命名和修改的包文件

    我有一个名为的java文件package old myfile java 我已经通过 git 提交了这个文件 然后我将我的包重命名为new所以我的文件在package new myfile java 我现在想将此文件重命名 和内容更改 提交
  • 获取给定类文件的目录路径

    我遇到的代码尝试从类本身的 class 文件所在的同一目录中读取一些配置文件 File configFiles new File this getClass getResource getPath listFiles new Filenam
  • 计算日期之间的天数差异

    在我的代码中 日期之间的差异是错误的 因为它应该是 38 天而不是 8 天 我该如何修复 package random04diferencadata import java text ParseException import java t
  • Java - 返回值是否会中断循环?

    我正在编写一些基本上遵循以下格式的代码 public static boolean isIncluded E element Node
  • Espresso 和 Proguard 的 Java.lang.NoClassDefFoundError

    我对 Espresso 不太有经验 但我终于成功地运行了它 我有一个应用程序需要通过 Proguard 缩小才能处于 56K 方法之下 该应用程序以 3 秒的动画开始 因此我需要等到该动画结束才能继续 这就是我尝试用该方法做的事情waitF
  • 如何在 Eclipse Java 动态 Web 项目中使用 .properties 文件?

    我正在 Eclipse 中开发动态 Web 项目 我创建了一个 properties 文件来存储数据库详细信息 用户名 密码等 我通过右键单击项目和 New gt File 添加它 我使用了Java util包Properties类 但它不
  • 逃离的正确方法是什么?使用 Oracle 12c MATCH_RECOGNIZE 时 JDBCPreparedStatement 中的字符?

    以下查询在 Oracle 12c 中是正确的 SELECT FROM dual MATCH RECOGNIZE MEASURES a dummy AS dummy PATTERN a DEFINE a AS 1 1 但它不能通过 JDBC
  • 为什么java中的for-each循环中需要声明变量

    for 每个循环的通常形式是这样的 for Foo bar bars bar doThings 但如果我想保留 bar 直到循环结束 我可以not使用 foreach 循环 Foo bar null Syntax error on toke
  • 将图像添加到自定义 AlertDialog

    我制作了一个 AlertDialog 让用户可以从我显示的 4 个选项中选择一个 前 3 个让他们在单击号码时直接拨打号码 第 4 个显示不同的视图 现在看起来是这样的 由于第四个选项的目的是不同的任务 我想让它看起来不同 因为用户可能会感
  • 如何在 Quartz 调度程序中每 25 秒运行一次?

    我正在使用 Java 的 Quartz Scheduling API 你能帮我使用 cron 表达式每 25 秒运行一次吗 这只是一个延迟 它不必总是从第 0 秒开始 例如 序列如下 0 00 0 25 0 50 1 15 1 40 2 0
  • Hibernate 和可序列化实体

    有谁知道是否有一个框架能够从实体类中剥离 Hibernate 集合以使它们可序列化 我查看了 BeanLib 但它似乎只进行实体的深层复制 而不允许我为实体类中的集合类型指定实现映射 BeanLib 目前不适用于 Hibernate 3 5
  • Java &= 运算符应用 & 或 && 吗?

    Assuming boolean a false 我想知道是否这样做 a b 相当于 a a b logical AND a is false hence b is not evaluated 或者另一方面 这意味着 a a b Bitwi
  • Android 和 Java 中绘制椭圆的区别

    在Java中由于某种原因Ellipse2D Double使用参数 height width x y 当我创建一个RectF在Android中参数是 left top right bottom 所以我对适应差异有点困惑 如果在 Java 中创

随机推荐

  • 如何计算Android项目中作为依赖项添加的库的大小

    我正在一个项目中使用多个库 例如 google play service retrofit gson glide twitter 和 facebook sdk 所以我想知道每个库在我的应用程序中占用的确切大小 请帮助我是否有任何可能的方法来
  • iOS 运动检测:运动检测灵敏度级别

    我有一个简单的问题 我正在尝试检测用户何时摇动 iPhone 我有标准代码来检测运动 这没有问题 然而 在我的实际手机上进行测试时 我意识到你必须用力摇动设备才能触发运动检测 我想知道是否有办法实施一定程度的敏感性检查 例如 一种检测用户是
  • SparkSQL 是 RDBMS 还是 NOSQL?

    最近和朋友讨论Spark SQL的特性时 遇到了这个问题 它们是 ACID 事务吗 Spark SQL 遵循 CAP 定理吗 我对这个领域有点陌生 请帮助我 提前致谢 SparkSQL 是一种查询语言 而不是像 Hive 或 MYSQL 那
  • Android OpenGL ES 和 2D

    嗯 这是我的要求 我还不知道OpenGL 而且我也不愿意学习它 我想直接学习OpenGL ES 因为我的开发目标是android 我想学习 OpenGL ES 以发展我的能力2D游戏 我选择它是出于性能目的 因为基本的 SurfaceVie
  • 名词、动词、形容词等的单独单词列表

    通常单词列表是 1 个包含所有内容的文件 但是是否有可单独下载的名词列表 动词列表 形容词列表等 我特别需要它们来学习英语 如果您只下载数据库文件wordnet princeton edu download 当前版本 https wordn
  • 多个字段的 Laravel SUM 使用原始查询返回 null

    以下是我的查询 sales DB table sales gt leftJoin category sales category sales sale id sales id gt leftJoin department sales dep
  • 使用javascript的最大子数组[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给定一个整数数组 nums 找到连续的子数组 至少包含一个数字 其总和最大并返回其总和 Example 输入 2 1 3 4 1 2
  • 将外来字符更改为对应的罗马字符

    我正在使用 php 我想知道是否有一种预定义的方法可以将外来字符转换为非外来字符 字符如 一切都导致 e 我正在寻找一个函数 它接受一个字符串并返回它 不带特殊字符 任何想法将不胜感激 在找不到合适的转换器之后 我创建了自己的集合来满足我的
  • 调用 Windows 安全对话框(在 C# 或 VB.NET 中)

    我想知道如何调用 Windows 安全对话框 在 Windows 工作站上按 ctrl alt del注意 我不需要任务管理器 以编程方式 在 XP 工作站上 不必担心 Win7 或 Vista 最好有一个 C 快速示例 如果必须的话 也可
  • .remove() 在 Internet Explorer 中不起作用[重复]

    这个问题在这里已经有答案了 此代码在 Google Chrome 中运行良好 但在 Internet Explorer 中不起作用 document getElementsByClassName info i remove 有没有其他方法可
  • Shell 脚本来源:未找到

    我正在运行以下简单脚本来测试代码块 bin bash Load nvm and install latest production node source HOME nvm nvm sh nvm install v0 10 12 nvm u
  • Kotlin:流与序列 - 为什么有多种方法来做同一件事?

    为什么在 Kotlin 中有多种方法可以做同样的事情 这是有原因的吗 val viaSequence items asSequence filter it 2 0 map it 2 toList println viaSequence va
  • 为什么 Rails 在 schema.rb 中的所有列上设置“:null => false”?

    即使我从未具体说明 null gt false在我最初向表添加列的迁移中 rails 仍然在中生成代码schema rb指定列具有 null gt false 为什么是这样 如果我在我的盒子上开发 然后使用rake db schema lo
  • Codeigniter 中的图像文件、css、js 等放在哪里?

    css文件夹和图片文件夹放在哪里可以接受 我在想在视图文件夹里面 但是 控制器总是将路径重新路由到基本 url 因此我必须将 html 文件中的路径指定到它所在的位置 这是多余的 我有这样的设置 应用 system assets js im
  • 为 execvp() 创建 char* const *

    满足 execvp 的第二个参数时遇到很大困难 编译器说它需要传递一个 char const 而我有一个 const char 我更喜欢它由用户输入制成 std string x std cout lt lt CMD getline std
  • 如何在android中自动滚动列表视图?

    如何在android中自动滚动列表视图 我正在将数据添加到列表中 所以我希望当我添加它时它应该自动滚动并且最后添加的项目应该可见 使用函数 setSelectionFromTop int position int y http develo
  • 在 Android 的 Auth0 Lock 中获取 403 不允许的用户代理

    在我的 Android 应用程序中集成 Auth0 登录 对于此集成 我正在关注这个https auth0 com docs libraries lock android https auth0 com docs libraries loc
  • widget.SearchView 不显示 Android 中语音搜索的 MIC 按钮

    我在名为activity products final的布局文件中有一个seachview
  • 如何在 python 正则表达式中匹配双引号?

    我用这个语句result re match r sentence 匹配sentence balabala 但我总是得到None 为什么 我尝试了很多次 在线正则表达式测试表明它有效 正则表达式中的双引号是分隔字符串而不是正则表达式的一部分
  • 当属性不存在时,Spring @Value 注释不使用默认值

    我尝试在构造函数的参数中使用 Value 注释 如下所示 Autowired public StringEncryptor Value encryptor password String password Value encryptor a