`

spring boot 自定义 PropertyPlaceholderConfigurer

    博客分类:
  • java
 
阅读更多
@Configuration
public class ApplicationConfigurer  {

    private static Logger logger = Logger.getLogger(ApplicationConfigurer.class);

    public static final String SPRING_CONFIG_LOCATION = "spring.config.location";

    /**
     * 自定义配置加载,方法定义为static的,保证优先加载
     * @return
*/
@Bean
public static PropertyPlaceholderConfigurer properties() {
        final PropertyPlaceholderConfigurer ppc = new PropertyPlaceholderConfigurer();
        ppc.setIgnoreResourceNotFound(true);
        final List<Resource> resourceLst = new ArrayList<Resource>();


        if(System.getProperty(SPRING_CONFIG_LOCATION) != null){
            String configFilePath = System.getProperty(SPRING_CONFIG_LOCATION);
            String[] configFiles = configFilePath.split(",|;");

            FileSystemResource res =null;
            for (String configFile : configFiles) {
                if (configFile.startsWith("file:")){
                    resourceLst.add(new FileSystemResource(configFile));
                }else {
                    resourceLst.add( new ClassPathResource(configFile));
                }
            }
        }else {
            resourceLst.add(new ClassPathResource("config/application.properties"));
            resourceLst.add(new ClassPathResource("config/kafka.properties"));
        }
        ppc.setLocations(resourceLst.toArray(new Resource[]{}));
        return ppc;
    }
}
分享到:
评论

相关推荐

    Spring如何使用PropertyPlaceholderConfigurer读取文件

    Spring如何使用...使用PropertyPlaceholderConfigurer可以将配置文件的路径放在java虚拟机JVM的自定义变量中,例如:-Ddev.config=/dev.properties,这样可以实现配置文件的路径根据环境的变化而变化。 ...

    Spring中PropertyPlaceholderConfigurer的使用

    Spring 中 PropertyPlaceholderConfigurer 的使用 PropertyPlaceholderConfigurer 是 Spring 框架中的一个重要组件,用于加载和管理 Properties 文件。它能够将 Properties 文件中的键值对注入到 Spring 的 bean 中...

    Spring属性占位符PropertyPlaceholderConfigurer的使用

    在Spring框架中,属性占位符`PropertyPlaceholderConfigurer`是一个重要的工具,用于处理配置文件中的属性值引用。它使得我们可以在XML配置文件中使用占位符`${...}`来引用外部属性文件中的值,从而使应用配置更加...

    Spring PropertyPlaceholderConfigurer配置文件加载器集成ZooKeeper来实现远程配置读取

    在Spring中,`PropertyPlaceholderConfigurer`是一个非常重要的类,它用于处理属性文件中的占位符,将它们替换为实际的值。这在配置管理中起到了关键作用,特别是在大型分布式系统中,动态配置管理变得尤为重要。...

    spring boot 注入 property的三种方式(推荐)

    Spring Boot 注入 Property 的三种方式 Spring Boot 是一个流行的 Java 框架,它提供了多种方式来注入 Property。Property 是一个配置文件,用于存储应用程序的配置信息。在 Spring Boot 中,Property 可以通过多种...

    Spring boot外部配置(配置中心化)详解

    Spring Boot 外部配置(配置中心化)详解 Spring Boot 框架提供了多种方式来进行外部配置,其中配置中心化是其中一种重要的方式。本文将详细介绍 Spring Boot 外部配置(配置中心化)的实现方式和原理。 配置中心...

    Cloud Native Java

    区分环境配置与代码配置,使用Spring框架中的PropertyPlaceholderConfigurer、Environment抽象与@Value注解,以及profiles来适应不同的运行环境和测试环境。 5. 集中式、日志化配置 以Spring Cloud为基础,介绍了...

    org.springframework.beans.factory.config.PropertyPlaceholderConfigurer

    `org.springframework.beans.factory.config.PropertyPlaceholderConfigurer` 是Spring框架中的一个重要组件,主要负责处理配置文件中的占位符替换。这个类是Spring在初始化bean时用来解析和注入环境变量或系统属性...

    Spring动态加载配置文件

    除了这两种方式,Spring Boot引入了更强大的`ConfigDataLocationResolver`和`ConfigDataLoader`接口,它们允许我们自定义配置数据的加载逻辑,支持更丰富的数据源,如Git、HTTP等。 在实际应用中,我们可能还需要...

    spring使用属性文件

    Spring Boot引入了`@ConfigurationProperties`注解,允许我们将属性文件中的整个段落映射到一个Java类的字段上,提供更强大的类型安全和对象模型绑定。 7. **YAML格式** 虽然这里提到的是属性文件,但Spring Boot...

    spring源码经典实例

    3. **使用Spring Boot**:考虑将项目迁移到Spring Boot,它可以简化部署过程,自动配置许多Spring组件,同时支持嵌入式Tomcat服务器。 4. **单元测试与集成测试**:添加JUnit和Mockito等测试框架,编写单元测试和...

    spring4.0引用properties

    `PropertyPlaceholderConfigurer`是Spring早期版本中用于注入properties文件中值的bean,而`@ConfigurationProperties`是Spring Boot引入的,更适合现代Spring应用。 使用`PropertyPlaceholderConfigurer`的例子...

    关于spring系统中多系统的配置

    在Spring框架中,`PropertyPlaceholderConfigurer`是一种特殊的Bean,它被用来处理Spring配置文件中的占位符(placeholder),并将它们替换为具体的值。这些值通常来自外部的属性文件,如`.properties`或`.xml`等。...

    spring资源文件

    9. **环境和配置源**:Spring的`Environment`接口提供了获取当前运行环境的配置属性,而`ConfigurableEnvironment`允许添加自定义配置源,如文件、系统属性、命令行参数等。 10. **Profile支持**:Spring支持多环境...

    在Spring中使用加密外部属性文件

    Spring默认的`PropertyPlaceholderConfigurer`不直接支持加密的属性文件,但它提供了扩展点,允许我们自定义实现来处理加密后的属性。以下是一种实现方式: 1. 创建一个自定义的`PropertyPlaceholderConfigurer`...

    Spring-Reference_zh_CN(Spring中文参考手册)

    PropertyPlaceholderConfigurer示例 3.7.2.2. PropertyOverrideConfigurer示例 3.7.3. 使用FactoryBean定制实例化逻辑 3.8. ApplicationContext 3.8.1. 利用MessageSource实现国际化 3.8.2. 事件 3.8.3. 底层资源的...

    Spring数据库连接等配置加密

    在IT行业中,尤其是在开发企业级应用时,...Spring提供了`PropertyPlaceholderConfigurer`和`EncryptablePropertyPlaceholderConfigurer`来实现这个功能。首先,我们需要创建一个解密器类,如下所示: ```xml ...

    spring02-6

    Spring通过`@Value`注解和`PropertyPlaceholderConfigurer`(在Spring 3.1以后被`@ConfigurationProperties`替代)等方式来实现属性注入。下面,我们将深入探讨这一概念及其应用。 首先,让我们了解什么是属性文件...

    spring

    - **PropertyPlaceholderConfigurer** 和 **PropertyOverrideConfigurer**:用于在运行时动态替换Bean配置中的占位符。 ### 结论 Spring框架以其强大的功能和灵活性,成为Java企业级应用开发的首选框架之一。通过...

    spring-reference

    Spring框架允许开发者自定义Bean类,并通过BeanDefinition将其配置到容器中。 ##### 3.2.4 Bean 标识符 (id 和 name) Bean的标识符用于唯一标识一个Bean。Spring框架允许使用id或name属性来为Bean指定标识符。 ###...

Global site tag (gtag.js) - Google Analytics