網站首頁 編程語言 正文
背景
使用springboot的過程中,比較方便的一個功能就是變量注入,使用@value注解,就可以簡單的將配置文件中的變量注入到代碼中。
但是使用過程,發現一個問題,@value對于static變量的支持不太好,所以本文就研究了一下怎么注入static變量。
開始解決問題
1.簡單的靜態變量@value注入示例
(1)A類(定義靜態變量注入屬性值)
在這個類中,我們將屬性"jdbc.url"的值注入到了MyComponent類中定義的靜態變量"url"中。這樣就簡單的完成了
注意setUrl方法不能是static
@Component
public class MyComponent {
public static String url;
@Value("${jdbc.url}")
private void setUrl(String url) {
MyComponent.url = url;
}
}
2.如果該變量需要被其他類,在static代碼塊中引用呢?
(2)B類(通過靜態塊引用 A 類的代碼塊)
在這個類中,我們使用靜態塊來引用A類的靜態變量"url"。
@Component
public class AnotherComponent {
static {
// 靜態塊內訪問A類的靜態變量
System.out.println(MyComponent.url);
}
}
(3)保證A、B類的實例化先后順序
SpringBoot啟動類(注入A類的實例,并確保A類在B類之前初始化):
@SpringBootApplication
public class Application implements CommandLineRunner {
@Autowired
private MyComponent myComponent;
@Autowired
private AnotherComponent anotherComponent;
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Override
public void run(String... args) throws Exception {
// 這里可以訪問MyComponent的實例和AnotherComponent的靜態代碼塊
}
}
原文鏈接:https://blog.csdn.net/Mint6/article/details/130309979
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-02-27 select組件選中后獲取當前值對應的對象信息
- 2022-10-27 pytorch中dataloader?的sampler?參數詳解_python
- 2023-01-19 Pycharm?2to3配置,python2轉python3方式_python
- 2022-07-22 在windows上配置git支持多賬號
- 2022-03-19 centos7修改網卡后無法上網問題解決過程_Linux
- 2023-03-16 ProxyWidget和Element更新的正確方式詳解_Android
- 2022-09-25 什么是模板引擎(web)?常見的模板引擎有哪些?thymeleaf的常用指令介紹
- 2022-04-20 python數據類型中的字符串你了解多少_python
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支