本文实例为大家分享了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变量
@SpringBootApplicationpublic 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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。
新闻热点
疑难解答