欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

spring boot静态变量注入配置文件详解

程序员文章站 2023-12-03 09:47:34
本文实例为大家分享了spring boot静态变量注入配置文件的具体代码,供大家参考,具体内容如下 spring 静态变量注入 spring 中不支持直接进行静态变...

本文实例为大家分享了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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。