美文网首页
SpringBoot读取properties

SpringBoot读取properties

作者: xlesterx | 来源:发表于2018-11-08 10:49 被阅读9次

    1. @Value

    2. @ConfigurationProperties

    3. 使用Environment获取

    基本原理:通过注入Environment对象
    实现目标:在一般情况,用@value就够,但有些时候static的方法也希望在配置文件的参数。
    实现思路:PropertiesUtils内放入一个static的Environment,PropertiesUtils .getProperty("xxxxx")就可以获取想要的属性

    3.1 定义 SpringContext

    @Component
    @Order(1)
    public class SpringContext implements ApplicationContextAware {
    
      private static ApplicationContext context;
    
      public SpringContext() {
        log.info("init SpringContext");
      }
    
      @Override
      public void setApplicationContext(ApplicationContext ctx) throws BeansException {
        context = ctx;
      }
      
      public static <T> T getBean(String name, Class<T> clazz) {
        log.info("use SpringContext get bean name={}", name);
        return context.getBean(name, clazz);
      }
    
    }
    

    3.2 PropertiesUtils内通过env获取properites

    @Slf4j
    public class PropertiesUtils {
    
      private static Environment env = SpringContext.getBean("environment", Environment.class);
    
      private PropertiesUtils() {
        log.info("PropertiesUtils init");
      }
    
      public static String getProperty(String properties) {
        return env.getProperty(properties);
      }
    }
    
    

    4. 监听器的方式

    5. 建议

    一般建议尽量用依赖注入的方式,static不能滥用。

    相关文章

      网友评论

          本文标题:SpringBoot读取properties

          本文链接:https://www.haomeiwen.com/subject/wjwixqtx.html