1. 程式人生 > 其它 >Soul原始碼分析 —— 分析Plug-in架構模型

Soul原始碼分析 —— 分析Plug-in架構模型

技術標籤:原始碼分析javaspring閘道器

Soul原始碼分析 —— soul外掛

什麼是外掛

相對於平臺提供了軟體的核心功能,外掛是對已有功能的擴充套件。 平臺需要定義介面,外掛通過實現平臺定義的介面來獲取平臺的各種資源和資料。平臺通過外掛介面來呼叫外掛所實現的功能

Soul如何實現外掛的呼叫

Soul是通過Java spi來實現的外掛註冊的。相對於api,spi是呼叫方定義介面規範,提供給外部來實現,呼叫方在呼叫時所需的外部實現。

Soul的例子

  1. 生成包含多個模組的starter,引用starter即引入了所包含的模組的jar包。

  2. 在這些模組的META-INF/spring.factories路徑下,以soul-spring-boot-starter-plugin-sign為例,有以下定義

    org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
    org.dromara.soul.springboot.starter.plugin.sign.SignPluginConfiguration
    

    通過SignPluginConfiguration這個java config檔案,閘道器在bean容器初始化時會建立定義好的plug-in bean的例項。

  3. 通過ObjectProvider來獲取所有的Soul Plugin的例項

@Bean("webHandler")
public SoulWebHandler soulWebHandler(final ObjectProvider<List<SoulPlugin>> plugins) 

小結

本文解析了Soul是如何在閘道器中使用spi來引入多個外掛來擴充套件對不同系統的支援的。