ITPub博客

首页 > 数据库 > 数据库开发技术 > 轻松且优雅的 Spring 工具类占位符解析

轻松且优雅的 Spring 工具类占位符解析

原创 数据库开发技术 作者:DevXTalk 时间:2024-01-23 08:30:00 0 删除 编辑

轻松且优雅的 Spring 工具类占位符解析

工作多年我发现一个有趣的现象,有的同学会在项目代码中自己去写很多基础代码,比如使用 JDK 提供的 I/O API  等等。我不是说这样做不好,只是没必要(good but wrong , 你是个好人...),尤其是在商业项目中。首先这样做并不能让我们的效率提高,其次自己编写的代码也许并没有开源项目质量高, 最重要的一点是这样做真的会让自己很累。我是不大理解为什么很多公司招聘的时候都要写上要求能吃苦耐劳, 当然了吃苦耐劳本身并没有错能表现出一个人的坚强的意志力。但也不适用于所有的场景,就像事实证明人多不一定力量大。换个角度想与其吃苦耐劳我们能不能偷懒呢,想想有没有更聪明,高效的办法让我们完成工作呢。做一个懒惰的程序员,但前提是做一个 聪明且懒惰的程序员。

PropertyPlaceholderHelper 占位符解析

PropertyPlaceholderHelper 全类名 org.springframework.util.PropertyPlaceholderHelper

用于处理具有占位符值的字符串的实用程序类。占位符的形式为${name}。使用PropertyPlaceholderHelper,这些占位符可以替换用户提供的值。可以使用Properties实例或PropertyPlaceholderHelper提供替换值。占位符解析程序。

支持自定义的指定占位符前缀 placeholderPrefix 和占位符后缀 placeholderSuffix 。还支持带有默认值的占位符 valueSeparator 占位符变量和关联的默认值(如果有)之间的分隔字符, 例如 @Value("${spring.profile.active : dev}")

是否忽略不能解析的占位符 ignoreUnresolvablePlaceholders , 如果是 true 遇到不能解析的占位符会跳过,如果是 false 遇到不能解析的占位符会抛出异常

throw new IllegalArgumentException("Could not resolve placeholder '" +
placeholder + "'" + " in value \"" + value + "\"");

PropertyPlaceholderHelper 是一个比较简单易用的字符串替换占位符的工具类,例如:替换短信模板信息,邮件模板信息,xml报文模板信息, SQL 模板等等。

PropertyPlaceholderHelper 使用

PropertyPlaceholderHelper 使用起来非常的简单,它不需要依赖其他的一些组件类,只需要简单的 new 出来即可,最常用的方法是 replacePlaceholders 。需要注意的是它需要传入一个 Properties 实例,Properties 中的 key , value 必须都是 String 类型的,否则无法解析。

import org.springframework.util.PropertyPlaceholderHelper;

public class PropertyPlaceholderHelperExample {

public static void main(String[] args) {
// 创建 PropertyPlaceholderHelper 实例
PropertyPlaceholderHelper helper = new PropertyPlaceholderHelper("${", "}", ":", true);

// 定义属性文件内容
String content = "username=${username},password=${password}";

// 使用 PropertyPlaceholderHelper 解析属性文件内容
String result = helper.replacePlaceholders(content, new Properties() {{
setProperty("username", "admin");
setProperty("password", "123456");
}});

// 打印解析结果
System.out.println(result);
}
}

非常的轻松写意且优雅,不用自己再去写一堆代码了,一行代码即可搞定。为了让大家能偷懒摸鱼我也是操碎了心。


欢迎加入 DevXTalk 的技术交流群,在这里你可以和大佬们一起交流分享技术,行业经验,提升自我。总之期待你的加入...


「看完本文有收获?转发给更多的朋友吧」

「DevXTalk 不止于技术」

原文作者:DevXTalk;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2019-03-23

  • 博文量
    178
  • 访问量
    82575