下面列出了org.springframework.boot.env.PropertySourceLoader#load ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@PostConstruct
public void printConfig() throws UnSupportConfigFileSuffixException {
LOGGER.info("Start to print config");
addPropertiesFile();
ResourceLoader resourceLoader = new DefaultResourceLoader();
LOGGER.info("Prepared to print config in file: {}", propertiesFiles);
for (String fileName : propertiesFiles) {
LOGGER.info("======================== Config in {} ========================", fileName);
PropertySourceLoader propertySourceLoader = getPropertySourceLoader(fileName);
Resource resource = resourceLoader.getResource(fileName);
try {
List<PropertySource<?>> propertySources = propertySourceLoader.load(fileName, resource);
for (PropertySource p : propertySources) {
Map<String, Object> map = (Map<String, Object>) p.getSource();
for (String key : map.keySet()) {
LOGGER.info("Name: [{}]=[{}]", key, map.get(key));
}
}
} catch (IOException e) {
LOGGER.info("Failed to open file: {}, caused by: {}, it does not matter", fileName, e.getMessage());
}
LOGGER.info("=======================================================================================\n");
}
LOGGER.info("Succeed to print all configs");
}
@Override
public PropertySource<?> createPropertySource(String name, EncodedResource resource) throws IOException {
PropertySource<?> propSource = null;
String propName = name;
if (StringUtils.isEmpty(propName)) {
propName = getNameForResource(resource.getResource());
}
if (resource.getResource().exists()) {
String fileName = resource.getResource().getFilename();
for (PropertySourceLoader loader : loaders) {
if (checkFileType(fileName, loader.getFileExtensions())) {
List<PropertySource<?>> propertySources = loader.load(propName, resource.getResource());
if (!propertySources.isEmpty()) {
propSource = propertySources.get(0);
}
}
}
} else {
throw new FileNotFoundException(propName + "对应文件'" + resource.getResource().getFilename() + "'不存在");
}
return propSource;
}
@Override
public PropertySource<?> createPropertySource(String name, EncodedResource resource) throws IOException {
PropertySource<?> propSource = null;
String propName = name;
if (StringUtils.isEmpty(propName)) {
propName = getNameForResource(resource.getResource());
}
if (resource.getResource().exists()) {
String fileName = resource.getResource().getFilename();
for (PropertySourceLoader loader : loaders) {
if (checkFileType(fileName, loader.getFileExtensions())) {
List<PropertySource<?>> propertySources = loader.load(propName, resource.getResource());
if (!propertySources.isEmpty()) {
propSource = propertySources.get(0);
}
}
}
} else {
throw new FileNotFoundException(propName + "对应文件'" + resource.getResource().getFilename() + "'不存在");
}
return propSource;
}
void load(String location, PropertySourceLoader loader) {
try {
Resource resource = resourceLoader.getResource(location);
if (!resource.exists()) {
return;
}
String propertyResourceName = "flowableDefaultConfig: [" + location + "]";
List<PropertySource<?>> propertySources = loader.load(propertyResourceName, resource);
if (propertySources == null) {
return;
}
propertySources.forEach(source -> environment.getPropertySources().addLast(source));
} catch (Exception ex) {
throw new IllegalStateException("Failed to load property "
+ "source from location '" + location + "'", ex);
}
}
@SneakyThrows
private List<PropertySource<?>> load(PropertySourceLoader loader, String sourceName, Resource resource) {
return loader.load(sourceName, resource);
}