mirror of https://github.com/longtai-cn/hippo4j
parent
249fadab9a
commit
dfc7f0eab1
@ -1,44 +0,0 @@
|
|||||||
package cn.hippo4j.core.starter.refresher;
|
|
||||||
|
|
||||||
import cn.hippo4j.common.toolkit.StringUtil;
|
|
||||||
import com.google.common.collect.Lists;
|
|
||||||
import com.google.common.collect.Maps;
|
|
||||||
import org.springframework.beans.factory.config.YamlPropertiesFactoryBean;
|
|
||||||
import org.springframework.core.io.ByteArrayResource;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Config parser service.
|
|
||||||
*
|
|
||||||
* @author chen.ma
|
|
||||||
* @date 2022/2/26 17:33
|
|
||||||
*/
|
|
||||||
public class ConfigParserHandler {
|
|
||||||
|
|
||||||
private final List<String> yamlList = Lists.newArrayList("yaml", "yml");
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Parse config.
|
|
||||||
*
|
|
||||||
* @param content
|
|
||||||
* @param configFileType
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public Map<Object, Object> parseConfig(String content, String configFileType) {
|
|
||||||
Map<Object, Object> resultMap = Maps.newHashMap();
|
|
||||||
if (StringUtil.isBlank(content)) {
|
|
||||||
return resultMap;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (yamlList.contains(configFileType)) {
|
|
||||||
YamlPropertiesFactoryBean yamlPropertiesFactoryBean = new YamlPropertiesFactoryBean();
|
|
||||||
yamlPropertiesFactoryBean.setResources(new ByteArrayResource(content.getBytes()));
|
|
||||||
resultMap = yamlPropertiesFactoryBean.getObject();
|
|
||||||
}
|
|
||||||
|
|
||||||
return resultMap;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -0,0 +1,18 @@
|
|||||||
|
package cn.hippo4j.core.starter.refresher.config;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 配置序列化接口
|
||||||
|
*
|
||||||
|
* @author serenity SerenitySir@outlook.com
|
||||||
|
* @since 2022/2/28
|
||||||
|
*/
|
||||||
|
public interface ConfigParser {
|
||||||
|
/**
|
||||||
|
* 对配置进行序列化
|
||||||
|
* @param content 配置的字符串形式
|
||||||
|
* @return 序列化后的k,v
|
||||||
|
*/
|
||||||
|
Map<Object, Object> parseConfig(String content);
|
||||||
|
}
|
@ -0,0 +1,37 @@
|
|||||||
|
package cn.hippo4j.core.starter.refresher.config.impl;
|
||||||
|
|
||||||
|
import cn.hippo4j.core.starter.refresher.config.ConfigParser;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
import lombok.SneakyThrows;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
|
import java.io.StringReader;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Properties序列化配置
|
||||||
|
*
|
||||||
|
* @author serenity SerenitySir@outlook.com
|
||||||
|
* @since 2022/2/28
|
||||||
|
*/
|
||||||
|
public class PropConfigParser implements ConfigParser {
|
||||||
|
|
||||||
|
@SneakyThrows
|
||||||
|
@Override
|
||||||
|
public Map<Object, Object> parseConfig(String content) {
|
||||||
|
if (!StringUtils.hasText(content)){
|
||||||
|
return Maps.newHashMap();
|
||||||
|
}
|
||||||
|
|
||||||
|
Properties properties = new Properties();
|
||||||
|
properties.load(new StringReader(content));
|
||||||
|
return properties;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
ConfigParser propConfigParser = new PropConfigParser();
|
||||||
|
Map<Object, Object> map = propConfigParser.parseConfig("db.aa=11\ndb.bb=22");
|
||||||
|
System.out.println(map.toString());
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,32 @@
|
|||||||
|
package cn.hippo4j.core.starter.refresher.config.impl;
|
||||||
|
|
||||||
|
import cn.hippo4j.common.toolkit.StringUtil;
|
||||||
|
import cn.hippo4j.core.starter.refresher.config.ConfigParser;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
import org.springframework.beans.factory.config.YamlPropertiesFactoryBean;
|
||||||
|
import org.springframework.core.io.ByteArrayResource;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Yml序列化配置
|
||||||
|
*
|
||||||
|
* @author serenity SerenitySir@outlook.com
|
||||||
|
* @since 2022/2/28
|
||||||
|
*/
|
||||||
|
public class YmlConfigParser implements ConfigParser {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<Object, Object> parseConfig(String content) {
|
||||||
|
Map<Object, Object> resultMap = Maps.newHashMap();
|
||||||
|
if (StringUtil.isBlank(content)) {
|
||||||
|
return resultMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
YamlPropertiesFactoryBean yamlPropertiesFactoryBean = new YamlPropertiesFactoryBean();
|
||||||
|
yamlPropertiesFactoryBean.setResources(new ByteArrayResource(content.getBytes()));
|
||||||
|
resultMap = yamlPropertiesFactoryBean.getObject();
|
||||||
|
|
||||||
|
return resultMap;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue