BaseApplication.java 文件源码

java
阅读 22 收藏 0 点赞 0 评论 0

项目:raptor 作者:
@Bean
public static PropertySourcesPlaceholderConfigurer properties() {
    PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer = new PropertySourcesPlaceholderConfigurer();

    propertySourcesPlaceholderConfigurer.setIgnoreResourceNotFound(false);

    ArrayList<String> defaultSources = new ArrayList(Arrays.asList("raptor.yml", appName + ".yml"));

    if (additionalConfigNames != null && !additionalConfigNames.isEmpty()) {
        defaultSources.addAll(additionalConfigNames);
    }

    ArrayList<String> sources = new ArrayList(defaultSources);

    if (developmentMode) {
        defaultSources.forEach((source) -> {
            sources.add(source.replace(".yml", ".dev.yml"));
        });
    }

    try {
        String envPath = System.getenv("CONFIG_BASEPATH");
        if (envPath != null && envPath.isEmpty()) {
            log.debug("Using CONFIG_BASEPATH={}", envPath);
            basepath = envPath;
        }
    } catch (Exception e) {
        log.warn("Failed to read environment variable CONFIG_BASEPATH: %s", e.getMessage());
    }

    log.debug("Configuration path {}", basepath);

    List<Resource> resources = sources.stream()
            .filter(f -> new File(basepath + f).exists())
            .map(f -> new FileSystemResource(basepath + f))
            .collect(Collectors.toList());

    log.debug("Configuration sources: {}", resources.toString());

    if (resources.isEmpty()) {
        throw new RuntimeException("Cannot find a loadable property file in: " + basepath);
    }

    YamlPropertiesFactoryBean yaml = new YamlPropertiesFactoryBean();
    yaml.setResources(resources.toArray(new Resource[]{}));

    propertySourcesPlaceholderConfigurer.setProperties(yaml.getObject());
    return propertySourcesPlaceholderConfigurer;
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号