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
  • asp之家 软件编程 m.aspxhome.com