在Spring boot中通過ApplicationContext獲取bean失敗
在專案中使用了一個某銀行的支付介面庫,庫中涉及到配置資訊,需要從資料庫中讀取支付配置資訊,由支付介面在呼叫的時候通過反射的方式進行呼叫。
配置類檔案是一個原始碼檔案,可以進行修改,希望在該介面中呼叫專案中的Spring管理的bean(通過Mybatis方式),從而實現資料庫訪問,讀取配置資訊。
在Spring boot中通過反射呼叫的類中通過SpringApplicationContext獲取bean失敗
原因是Springboot中使用了devtool的熱部署功能,導致使用了不同的類載入器,一個是appclassloader,一個是restartClassloader。取消熱部署配置後,可以使用了。
Java類載入器基於三個機制:委託、可見性和單一性。委託機制是指將載入一個類的請求交給父類載入器,如果這個父類載入器不能夠找到或者載入這個類,那麼再載入它。可見性的原理是子類的載入器可以看見所有的父類載入器載入的類,而父類載入器看不到子類載入器載入的類。單一性原理是指僅載入一個類一次,這是由委託機制確保子類載入器不會再次載入父類載入器載入過的類。
相關文章
- Spring在程式碼中獲取bean的幾種方式SpringBean
- Spring Boot package打包失敗Spring BootPackage
- Spring - 獲取ApplicationContext的幾種方式SpringAPPContext
- 獲取spring裡的beanSpringBean
- Spring6 當中 獲取 Bean 的四種方式SpringBean
- spring boot factory beanSpring BootBean
- Spring Boot讀取外部配置檔案失敗,原因絕對出乎你意料Spring Boot
- Spring原始碼剖析4:其餘方式獲取Bean的過程分析Spring原始碼Bean
- appium 獲取混合頁面元素失敗APP
- EVCache快取在 Spring Boot中的實戰快取Spring Boot
- 在Spring Boot中實現WebSocket實時通訊Spring BootWeb
- Spring入門(三):通過JavaConfig裝配beanSpringJavaBean
- Spring Boot EL獲取配置檔案中的值的方式Spring Boot
- Spring boot 獲取yml檔案工具類Spring Boot
- Spring原始碼剖析4:懶載入的單例Bean獲取過程分析Spring原始碼單例Bean
- 【FAQ】獲取Push Token失敗,如何進行排查?
- jmap執行失敗了,怎麼獲取heapdump?
- 在Spring Boot快取API - Code FactorySpring Boot快取API
- Spring Boot 老啟動失敗,這次再也不怕了!Spring Boot
- 通過用shellcode獲取shell
- spring boot 獲取客戶端ip資訊Spring Boot客戶端
- Spring Boot中從自定義Logback訪問Spring Bean三種方法Spring BootBean
- Spring Boot 通過CORS實現跨域Spring BootCORS跨域
- 通過Spring Boot Webflux實現Reactor KafkaSpring BootWebUXReactKafka
- spring通過註解註冊bean的方式+spring生命週期SpringBean
- spring cloud+spring boot 電子商務spring boot獲取配置檔案的屬性CloudSpring Boot
- 獲取Spring容器中Bean例項的工具類(Java泛型方法實現)SpringBeanJava泛型
- 使用Spring Boot重試失敗編寫一個反向代理 - AshrithSpring Boot
- KU FPGA FLASH boot失敗debugFPGAboot
- Spring原始碼解析-applicationContext.xml載入和bean的註冊Spring原始碼APPContextXMLBean
- Grails通過sessionId獲取session物件AISession物件
- JavaScript 通過class獲取元素物件JavaScript物件
- 【Spring Boot】使用JDBC 獲取相關的資料Spring BootJDBC
- (七)Spring Boot Controller的請求引數獲取Spring BootController
- 解決Spring Boot測試方法Failed to load ApplicationContext問題Spring BootAIAPPContext
- Guava Cache本地快取在 Spring Boot應用中的實踐Guava快取Spring Boot
- 在spring boot專案(maven)中引入其他 spring boot專案Spring BootMaven
- Spring之ApplicationContextSpringAPPContext