本文实例为大家分享了spring boot静态变量注入配置文件的具体代码,供大家参考,具体内容如下
spring 静态变量注入
spring 中不支持直接进行静态变量值的注入,我们看一下代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
@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; } } |
配置文件如下:
1
2
3
4
|
baseConfig: logBrokerList: 10.10 . 2.154 : 9092 logTopic: test monitorTopic: monitor |
项目启动时使用 logBrokerList变量
1
2
3
4
5
6
7
|
@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方法注入静态变量 ,我们可以改成这样就静态变量可以获取到你配置的信息了:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
@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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/kongrun12/article/details/76246369