如何从application.properties中提取配置的默认URL值?
解决方法
你的问题出在两个核心点:
- 配置项的实际key是
url.up,而非你使用的url,用错误的key自然获取不到值 ${url:http://localhost:8080/upload}是Spring占位符语法,直接读取会拿到原始字符串,需要解析才能提取默认值
下面提供两种可行的解决方式:
方式一:手动解析默认值
先获取url.up的原始配置字符串,再通过字符串处理提取默认部分:
// 获取原始占位符字符串 String rawValue = config.getPropertyValue("url.up"); String defaultUrl = null; if (rawValue != null && rawValue.startsWith("${") && rawValue.contains(":")) { // 截取默认值并去除末尾的} int colonPos = rawValue.indexOf(":"); int endPos = rawValue.lastIndexOf("}"); defaultUrl = rawValue.substring(colonPos + 1, endPos); } // defaultUrl 即为目标默认URL:http://localhost:8080/upload
方式二:利用Spring Environment自动解析(推荐)
如果是Spring/Spring Boot项目,直接使用Environment处理占位符,它会自动识别并返回默认值:
import org.springframework.core.env.Environment; // 注入Environment实例 @Autowired private Environment environment; // 方式1:直接解析占位符表达式 String targetUrl = environment.resolvePlaceholders("${url:http://localhost:8080/upload}"); // 方式2:先获取url.up的原始值再解析 String rawUpValue = environment.getProperty("url.up"); String resolvedUrl = environment.resolvePlaceholders(rawUpValue);
内容的提问来源于stack exchange,提问作者username1234565432
相关产品推荐
相关产品推荐

