Springboot獲取bean實例之SpringContextUtil詳解
更新時間:2025年03月27日 09:21:50 作者:stupid child
這篇文章主要介紹了Springboot獲取bean實例之SpringContextUtil使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
Springboot獲取bean實例-SpringContextUtil
1、工具類 SpringContextUtil
package XXXXXXXX;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
/**
*
* 獲取spring容器,以訪問容器中定義的其他bean
*/
@Component
public class SpringContextUtil implements ApplicationContextAware {
// Spring應用上下文環(huán)境
private static ApplicationContext applicationContext;
/**
* 實現(xiàn)ApplicationContextAware接口的回調(diào)方法,設置上下文環(huán)境
*
* @param applicationContext
*/
public void setApplicationContext(ApplicationContext applicationContext) {
SpringContextUtil.applicationContext = applicationContext;
}
/**
* @return ApplicationContext
*/
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
/**
* 通過name獲取對象
*/
public static Object getBean(String name) throws BeansException {
return applicationContext.getBean(name);
}
}2、要注入的bean
package XXXXX;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class ShardingVariableConfig {
@Value("${sharding.data.node}")
private int dataNode;
@Value("${sharding.table.node}")
private int tableNode;
//獲取分庫參數(shù)
public int getDataNode(){
return this.dataNode;
}
//獲取分表參數(shù)
public int getTableNode(){
return this.tableNode;
}
}
3、yml配置

4、方法中調(diào)用
ShardingVariableConfig valueService = (ShardingVariableConfig) SpringContextUtil.getBean("shardingVariableConfig");//bean的名稱
int dataNode = valueService.getDataNode();注意事項:
工具類SpringContextUtil和JavaBean都要加注解@Component,否則會Spring無法掃描到二者的位置
總結(jié)
通過此方法可以在任何地方調(diào)用JavaBean,解決@Autowired或@Resource無法注入的問題,無法直接通過@Value在某些類中取到值問題
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
用Java代碼實現(xiàn)棧數(shù)據(jù)結(jié)構(gòu)的基本方法歸納
這篇文章主要介紹了用Java代碼實現(xiàn)棧數(shù)據(jù)結(jié)構(gòu)的基本方法歸納,各種算法的實現(xiàn)也是ACM上經(jīng)常出現(xiàn)的題目,是計算機學習的基本功,需要的朋友可以參考下2015-08-08
springboot連接redis并動態(tài)切換database的實現(xiàn)方法
這篇文章主要介紹了springboot連接redis并動態(tài)切換database,本文主為通過修改ConnectionFactory從而達到動態(tài)切換database的效果,結(jié)合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下2022-03-03
SpringMVC+EasyUI實現(xiàn)頁面左側(cè)導航菜單功能
這篇文章主要介紹了SpringMVC+EasyUI實現(xiàn)頁面左側(cè)導航菜單功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-09-09
Spring Boot開箱即用可插拔實現(xiàn)過程演練與原理解析
本文通過深入探討Spring Boot的背景歷史、業(yè)務場景、功能點以及底層原理,并通過Java代碼手寫模擬了Spring Boot的啟動過程和自動配置功能,為開發(fā)者提供了一個全面的理解,感興趣的朋友跟隨小編一起看看吧2024-11-11

