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

  • 相关阅读:
    ef左联三张表案例
    sql常用语句汇总
    最初的ajax案例
    asp.net mvc请求响应模型原理回顾
    viewstate cookie和session原理回顾
    一般处理程序装配数据到html页的原理
    asp.net页面生命周期回顾
    rocketMQ 消息的 tag
    rocketMQ 订阅关系
    rocketMQ retry 消息的实现
  • 原文地址:https://www.cnblogs.com/pejsidney/p/9282506.html
Copyright © 2011-2022 走看看