fix(cli): 修复没有转义配置文件中的$符号
This commit is contained in:
@@ -21,8 +21,8 @@ public class ServiceInfoWrapper {
|
|||||||
public ServiceInfoWrapper(String name, ServiceInfo serviceInfo) {
|
public ServiceInfoWrapper(String name, ServiceInfo serviceInfo) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.serviceInfo = serviceInfo;
|
this.serviceInfo = serviceInfo;
|
||||||
this.environments = SpringPropertiesEscapeHelper.escapeMapKey(serviceInfo.getEnvironments());
|
this.environments = SpringPropertiesEscapeHelper.escapeMap(serviceInfo.getEnvironments());
|
||||||
this.arguments = SpringPropertiesEscapeHelper.escapeMapKey(serviceInfo.getArguments());
|
this.arguments = SpringPropertiesEscapeHelper.escapeMap(serviceInfo.getArguments());
|
||||||
}
|
}
|
||||||
|
|
||||||
public Boolean getEnabled() {
|
public Boolean getEnabled() {
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.lanyuanxiaoyao.service.cli.runner;
|
|||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* spring boot 配置文件转义
|
* spring boot 配置文件转义
|
||||||
@@ -10,6 +11,9 @@ import java.util.Map;
|
|||||||
* @date 2024-02-25
|
* @date 2024-02-25
|
||||||
*/
|
*/
|
||||||
public class SpringPropertiesEscapeHelper {
|
public class SpringPropertiesEscapeHelper {
|
||||||
|
public static <T> Map<String, T> escapeMap(Map<String, T> map) {
|
||||||
|
return escapeMapValue(escapeMapKey(map));
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 使用 _ 代替 map key 的 .
|
* 使用 _ 代替 map key 的 .
|
||||||
*/
|
*/
|
||||||
@@ -20,4 +24,19 @@ public class SpringPropertiesEscapeHelper {
|
|||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static <T> Map<String, T> escapeMapValue(Map<String, T> map) {
|
||||||
|
// https://github.com/spring-projects/spring-framework/issues/9628
|
||||||
|
// spring boot 的配置文件没有办法转义 $,使用 $\{ -> ${ 来绕过一下
|
||||||
|
return map.entrySet()
|
||||||
|
.stream()
|
||||||
|
.peek(entry -> {
|
||||||
|
if (entry.getValue() instanceof String) {
|
||||||
|
String value = (String) entry.getValue();
|
||||||
|
//noinspection unchecked
|
||||||
|
entry.setValue((T) value.replace("$\\{", "${"));
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user