2016-10-10 84 views
3

我的Spring Boot應用程序具有內容管理系統。我希望能夠在不需要重新啓動應用程序的情況下動態加載新組件。示例組件可能正在加載新的視頻播放器組件或廣告組件。每個組件都可能包含自己的控制器和視圖。Spring Boot中是否有可動態加載模塊的模式?

推薦的模式會是什麼樣的,什麼是一個好的框架來幫助解決這個問題? OSGi是一個選項嗎?

+0

怎麼樣,如果你去與基於插件的架構 –

+0

聽起來不錯!繼續... – Spider

回答

1

恐怕也沒有100%的解決方案,也許一些選項,讓我強調以下三個:

  1. spring factories,辦法(自動)配置豆類。

  2. 另一個有趣的方法去是春天開機如何自己處理擴展的方式 - 通過在這篇文章中有像自己的彈簧引導首發,:https://blog.codecentric.de/en/2014/11/extending-spring-boot-five-steps-writing-spring-boot-starter/,使用Spring工廠相結合你可以

  3. 最類似插件的解決方案是spring-plugin-project。然而,它看起來像只有加載被支持,一些其他功能,如版本也缺失,所以你可能必須自己構建它。

所以,主要的問題可能是卸載,並在運行時更新這些東西,這使我最終的觀察:

總的來說,我的印象中,有一個插件的概念正在一因爲它是爲微服務體系結構設計的,因此它與Spring啓動的想法背道而馳。因此,添加的(插件)功能可能是一個獨立的微服務(帶有自己的存儲),它由網關進行編排,這裏讓我重點介紹基於彈簧引導的項目,以展示這種體系結構的想法。