springboot無法從靜態(tài)上下文中引用非靜態(tài)變量的解決方法
靜態(tài)方法可以不用創(chuàng)建對象就調(diào)用,非靜態(tài)方法必須有了對象的實例才能調(diào)用。
因此想在靜態(tài)方法中直接引用非靜態(tài)方法是不可能的,因為不知道調(diào)用哪個對象的非靜態(tài)方法,編譯器不可能給出答案,因為沒有對象。
java就怕找不到對象。
解決辦法:
spring的set注入方法,通過非靜態(tài)的setter方法注入靜態(tài)變量,樣例如下
@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());
}
}
解決辦法不止這一種,個人覺得這種方法,簡單,也實用。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java繼承extends與super關(guān)鍵字詳解
本篇文章給大家詳細(xì)講述了Java繼承extends與super關(guān)鍵字的相關(guān)知識點(diǎn),需要的朋友們可以參考學(xué)習(xí)下。2018-02-02
MongoDB整合Spring實例詳細(xì)講解(含代碼)
這篇文章主要介紹了MongoDB整合Spring實例詳細(xì)講解(含代碼),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01
Java中spring boot validation自定義注解使用方式
這篇文章主要介紹了Java中spring boot validation自定義注解使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08
RabbitMQ中的prefetch_count參數(shù)詳解
這篇文章主要介紹了RabbitMQ中的prefetch_count參數(shù)用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11

