簡體   English   中英

在 Spring 引導中動態加載 Spring Bean 和組件

[英]Dynamically loading Spring Beans and Components in Spring Boot

我正在嘗試制作一個 Spring Boot 應用程序,其中插件在運行時從 JARs 動態加載。 我還希望插件能夠訪問所有 Spring 引導功能,最突出的是 Spring 數據 JPA。 我已經想出了如何從 JARs 加載類,現在我的問題是如何“連接”加載的類(可能是 Beans、 JpaRepositories等)以“使用”我的主要 Spring 引導應用程序。

將來我也可能希望擁有自己的注釋系統,用於使用插件中的主應用程序做不同的事情(我知道如何使用反射),並且我希望在我設法之后仍然能夠做到這一點整理 Spring 的東西。

我想我必須以某種方式告訴 Spring 在掃描注釋時從那些 JARs 中額外尋找@Component和其他有意義的類。 我嘗試使用@ComponentScanbasePackageClasses屬性,但這需要保持不變,並且硬編碼這不是我想做的選擇。

那么我想要實現的目標是可能的嗎? 如果是,那么我可以通過 Java 代碼來實現,還是可以通過編寫一些 XML 配置來實現?

當您啟動 spring 應用程序時,bean 會在其上下文中加載和掛鈎,因此如果您想手動添加更多內容,您可能需要重新加載整個上下文,這對於 spring 啟動應用程序可能不是一個好主意。

相反,我建議使用 spring 配置文件,這樣您就可以定義不同的配置,並根據您的需要簡單地啟用您需要的配置。

了解更多信息:

https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-profiles

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM