springboot 使用上下文獲取bean
問題
在使用springboot開發(fā)項(xiàng)目過程中,有些時(shí)候可能出現(xiàn)說會有在spring容器加載前就需要注入bean的類,這個(gè)時(shí)候如果直接使用@Autowire注解,則會出現(xiàn)控制針異常!
解決辦法
如下:
創(chuàng)建一個(gè)springContextUtil類
package cn.eangaie.appcloud.util;
import org.springframework.context.ApplicationContext;
public class SpringContextUtil {
private static ApplicationContext applicationContext;
//獲取上下文
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
//設(shè)置上下文
public static void setApplicationContext(ApplicationContext applicationContext) {
SpringContextUtil.applicationContext = applicationContext;
}
//通過名字獲取上下文中的bean
public static Object getBean(String name){
return applicationContext.getBean(name);
}
//通過類型獲取上下文中的bean
public static Object getBean(Class<?> requiredType){
return applicationContext.getBean(requiredType);
}
}
在AppcloudApplication.class 啟動(dòng)類里邊,將初始化該類,并將context注入進(jìn)去
public class AppcloudApplication {
public static void main(String[] args) {
ApplicationContext context=SpringApplication.run(AppcloudApplication.class, args);
SpringContextUtil.setApplicationContext(context);
}
}
在需要注入bean的地方,使用getBean(bean名稱)的方式獲取
MessageTemplateController messageTemplateController= (MessageTemplateController) SpringContextUtil.getBean("messageTemplateController");
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java SpringBoot微服務(wù)框架驗(yàn)證碼報(bào)錯(cuò)問題解決方案
這篇文章主要介紹了Java SpringBoot微服務(wù)框架驗(yàn)證碼報(bào)錯(cuò)問題解決方案,包括dockerfile容器操作和完整dockerfile,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08
SpringBoot整合Mybatis Generator自動(dòng)生成代碼
SpringBoot 整合 Mybatis Generator自動(dòng)生成dao、entity、mapper.xml實(shí)現(xiàn)單表增刪改查。文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-08-08
Springboot項(xiàng)目打包如何將依賴的jar包輸出到指定目錄
公司要對springboot項(xiàng)目依賴的jar包進(jìn)行升級,但是遇到一個(gè)問題,項(xiàng)目打包之后,沒辦法看到他里面依賴的jar包,版本到底是不是升上去了,沒辦法看到,下面通過本文給大家分享Springboot項(xiàng)目打包如何將依賴的jar包輸出到指定目錄,感興趣的朋友一起看看吧2024-05-05
Java調(diào)用Zookeeper的實(shí)現(xiàn)步驟
本文主要介紹了Java調(diào)用Zookeeper的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
Maven包沖突導(dǎo)致NoSuchMethodError錯(cuò)誤的解決辦法
web 項(xiàng)目 能正常編譯,運(yùn)行時(shí)也正常啟動(dòng),但執(zhí)行到需要調(diào)用 org.codehaus.jackson 包中的某個(gè)方法時(shí),產(chǎn)生運(yùn)行異常,這篇文章主要介紹了Maven包沖突導(dǎo)致NoSuchMethodError錯(cuò)誤的解決辦法,需要的朋友可以參考下2024-05-05
java實(shí)現(xiàn)基于Tcp的socket聊天程序
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)基于Tcp的socket聊天程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
Spring?Boot集成JasperReport生成文檔的方法
由于工作需要,要實(shí)現(xiàn)后端根據(jù)模板動(dòng)態(tài)填充數(shù)據(jù)生成PDF文檔,通過技術(shù)選型,使用Ireport5.6來設(shè)計(jì)模板,結(jié)合JasperReports5.6工具庫來調(diào)用渲染生成PDF文檔,這篇文章主要介紹了Spring?Boot集成JasperReport生成文檔,需要的朋友可以參考下2023-09-09

