spring boot静态变量注入配置文件详解
本文实例为大家分享了springboot静态变量注入配置文件的具体代码,供大家参考,具体内容如下
spring静态变量注入
spring中不支持直接进行静态变量值的注入,我们看一下代码:
@Component(value="KafkaConfig") @ConfigurationProperties(prefix="baseConfig") publicclassKafkaConfig{ privatestaticStringlogBrokerList; publicstaticStringgetLogBrokerList(){ returnlogBrokerList; } publicstaticvoidsetLogBrokerList(StringlogBrokerList){ KafkaConfig.logBrokerList=logBrokerList; } }
配置文件如下:
baseConfig: logBrokerList:10.10.2.154:9092 logTopic:test monitorTopic:monitor
项目启动时使用logBrokerList变量
@SpringBootApplication publicclassApplication{ publicstaticvoidmain(String[]args)throwsException{ SpringApplication.run(Application.class,args); System.out.println("configstatictest:"+KafkaConfig.getLogBrokerList()); } }
执行结果:
configstatictest:null
解决办法
利用spring的set注入方法,通过非静态的setter方法注入静态变量,我们可以改成这样就静态变量可以获取到你配置的信息了:
@Component(value="KafkaConfig") @ConfigurationProperties(prefix="baseConfig") publicclassKafkaConfig{ privatestaticStringlogBrokerList; publicstaticStringgetLogBrokerList(){ returnlogBrokerList; } @Value("${baseConfig.logBrokerList}") publicvoidsetLogBrokerList(StringlogBrokerList){ KafkaConfig.logBrokerList=logBrokerList; } }
执行结果:
configstatictest:10.10.2.154:9092
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。