zoukankan      html  css  js  c++  java
  • spring boot 静态变量注入配置文件

     

    spring 静态变量注入

    spring 中不支持直接进行静态变量值的注入,我们看一下代码:

    @Component(value = "KafkaConfig")
    @ConfigurationProperties(prefix = "baseConfig")
    public class KafkaConfig {
    private static String logBrokerList;
    
     public static String getLogBrokerList() {
        return logBrokerList;
     }
    
     public static void setLogBrokerList(String logBrokerList) {
        KafkaConfig.logBrokerList = logBrokerList;
     }
    }

    配置文件如下:

    baseConfig:
      logBrokerList: 10.10.2.154:9092
      logTopic: test  
      monitorTopic: monitor  

    项目启动时使用 logBrokerList变量

    @SpringBootApplication
    public class Application {
    public  static void main(String[] args) throws Exception {
    SpringApplication.run(Application.class, args);
    System.out.println("config static test :" + KafkaConfig.getLogBrokerList());
    }
    }

    执行结果:config static test :null


    解决办法

    利用spring的set注入方法,通过非静态的setter方法注入静态变量 
    ,我们可以改成这样就静态变量可以获取到你配置的信息了:

    @Component(value = "KafkaConfig")
    @ConfigurationProperties(prefix = "baseConfig")
    public class KafkaConfig {
    private static String logBrokerList;
    
    public static String getLogBrokerList() {
    return logBrokerList;
    }
    @Value("${baseConfig.logBrokerList}")
    public  void setLogBrokerList(String logBrokerList) {
    KafkaConfig.logBrokerList = logBrokerList;
    }
    }

    执行结果:config static test :10.10.2.154:9092

  • 相关阅读:
    4、[重点]Mybatis配置解析
    3、Mybatis的CRUD实现
    mybatis程序容易出错的地方
    1、初识Mybatis
    容易忽略的基础
    读取.properties配置文件的几种方式:
    格式化数字显示
    安装ipa文件
    保活一个线程
    地图经纬度的问题
  • 原文地址:https://www.cnblogs.com/pejsidney/p/9282506.html
Copyright © 2011-2022 走看看