springboot无法从静态上下文中引用非静态变量的解决方法
作者:海底苍鹰 时间:2022-03-05 16:50:05
静态方法可以不用创建对象就调用,非静态方法必须有了对象的实例才能调用。
因此想在静态方法中直接引用非静态方法是不可能的,因为不知道调用哪个对象的非静态方法,编译器不可能给出答案,因为没有对象。
java就怕找不到对象。
解决办法:
spring的set注入方法,通过非静态的setter方法注入静态变量,样例如下
@PropertySource(value = {"classpath:config/application.yml"},ignoreResourceNotFound = true,encoding="UTF-8")
@Service
public class tank_task {
private static String kafka;
public static String getProfilesKafka() {
return kafka;
}
@Value("${stream.kafka.servers}")
public void setProfilesKafka(String kafka) {
tank_task.kafka = kafka;
}
public static void tank_test(){
System.out.println("config static kafka :" + tank_task.getProfilesKafka());
}
}
解决办法不止这一种,个人觉得这种方法,简单,也实用。
来源:http://blog.51yip.com/android/2085.html
标签:springboot,静态,上下文,引用,变量
0
投稿
猜你喜欢
最小树形图模板朱刘算法分享
2023-11-07 07:04:38
IntelliJ IDEA像Eclipse一样打开多个项目的图文教程
2022-03-14 05:31:40
基于C#实现手机号码归属地接口调用
2022-07-14 09:46:54
java泛型详解
2023-06-07 23:54:47
Android实现换肤的两种思路分析
2023-03-25 13:54:18
SpringBoot使用ApplicationEvent&Listener完成业务解耦
2021-10-19 06:36:41
Java 继承与多态超详细梳理
2023-11-26 09:01:08
C#操作DataGridView设置单元格只读
2023-12-22 15:05:26
win7中C#的winForm编程使用savefiledialog不能弹出保存窗体的解决方法
2022-09-18 07:27:57
详解spring中的Aware接口功能
2023-07-02 00:36:01
springboot+vue实现登录功能的最新方法整理
2022-08-31 21:40:23
android通过gps获取定位的位置数据和gps经纬度
2023-04-26 04:51:59
java采用中文方式显示时间的方法
2021-07-24 03:04:34
C#移除字符串中的不可见Unicode字符 案例代码
2023-04-28 19:06:06
java中如何使用HttpClient调用接口
2021-10-13 11:19:14
C#定义简单的反射工厂实例分析
2021-08-21 15:16:16
Android自定义View接收输入法输入的内容
2022-08-28 12:25:42
SpringBoot下载Excel文件时,报错文件损坏的解决方案
2023-01-09 15:49:16
Android弹出窗口实现方法
2022-05-25 06:27:31
Android四大组件之广播BroadcastReceiver详解
2023-03-29 23:41:14