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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。