兼容 spring cloud config
This commit is contained in:
@@ -4,25 +4,30 @@
|
||||
package com.jeesite.common.io;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Collections;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.springframework.boot.env.OriginTrackedMapPropertySource;
|
||||
import org.springframework.boot.env.PropertiesPropertySourceLoader;
|
||||
import org.springframework.boot.env.YamlPropertySourceLoader;
|
||||
import org.springframework.core.Ordered;
|
||||
import org.springframework.core.env.PropertySource;
|
||||
import org.springframework.core.io.Resource;
|
||||
|
||||
import com.alibaba.fastjson.parser.ParserConfig;
|
||||
import com.jeesite.common.lang.StringUtils;
|
||||
|
||||
/**
|
||||
* 配置文件加载(Boot)
|
||||
* @author ThinkGem
|
||||
* @version 2018-10-16
|
||||
* @version 2020-10-26
|
||||
*/
|
||||
public class PropertyLoader implements org.springframework.boot.env.PropertySourceLoader, Ordered{
|
||||
public class PropertyLoader extends PropertiesPropertySourceLoader implements org.springframework.boot.env.PropertySourceLoader, Ordered{
|
||||
|
||||
private static boolean isLoadPropertySource = false;
|
||||
private static boolean isLoadJeeSitePropertySource = false;
|
||||
private PropertiesPropertySourceLoader propertiesPropertySourceLoader = new PropertiesPropertySourceLoader();
|
||||
private YamlPropertySourceLoader yamlPropertySourceLoader = new YamlPropertySourceLoader();
|
||||
|
||||
@Override
|
||||
public String[] getFileExtensions() {
|
||||
@@ -31,13 +36,21 @@ public class PropertyLoader implements org.springframework.boot.env.PropertySour
|
||||
|
||||
@Override
|
||||
public List<PropertySource<?>> load(String name, Resource resource) throws IOException {
|
||||
if (!isLoadPropertySource){
|
||||
isLoadPropertySource = true;
|
||||
List<PropertySource<?>> propertySources = new ArrayList<>();
|
||||
if (!isLoadJeeSitePropertySource) {
|
||||
isLoadJeeSitePropertySource = true;
|
||||
ParserConfig.getGlobalInstance().setSafeMode(true); // 开启 FastJSON 安全模式
|
||||
Properties properties = PropertiesUtils.getInstance().getProperties();
|
||||
return Collections.singletonList(new OriginTrackedMapPropertySource("jeesite", properties));
|
||||
propertySources.add(new OriginTrackedMapPropertySource("jeesite", properties));
|
||||
} else {
|
||||
String ext = FileUtils.getFileExtension(resource.getFilename());
|
||||
if (StringUtils.inString(ext, propertiesPropertySourceLoader.getFileExtensions())) {
|
||||
propertySources.addAll(propertiesPropertySourceLoader.load(name, resource));
|
||||
}else if (StringUtils.inString(ext, yamlPropertySourceLoader.getFileExtensions())) {
|
||||
propertySources.addAll(yamlPropertySourceLoader.load(name, resource));
|
||||
}
|
||||
}
|
||||
return Collections.emptyList();
|
||||
return propertySources;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user