Soul网关总结01

1 插件调用链

总结:

​ 每一个插件都自定了一个 spring boot starter。soul-bootstrap 中引入 starter 即可添加插件。

​ soul-bootstrap 启动时就会通过这些 starter 将插件 bean 初始化,并装载到上下文。

soul-bootstrap通过soul-spring-boot-starter-gateway这个starter来启动网关,soul-spring-boot-starter-gateway依赖soul-websoul-web的自动配置类:SoulConfiguration中初始化了 webHandler, dispatcherHandler, pluginDataSubscriber

soul-bootstrap 引入了 webflux 依赖来实现反应式编程,初始化了一个 反应式 web 服务器:

		/**
     * 反应式web 服务器
     * @return the netty reactive web server factory
     */
    @Bean
    public NettyReactiveWebServerFactory nettyReactiveWebServerFactory() {
   
   
        NettyReactiveWebServerFactory webServerFactory = new NettyReactiveWebServerFactory();
        webServerFactory.addServerCustomizers(new EventLoopNettyCustomizer());
        return webServerFactory;
    }

soul-web 从bean工厂加载所有插件并初始化 SoulWebHandler:

/**
 * 从bean工厂加载插件并初始化 SoulWebHandler.
 */
@Bean("webHandler")
public SoulWebHandler soulWebHandler(final ObjectProvider<List<SoulPlugin>> plugins) {
   
   
    List<SoulPlugin> pluginList = plugins.getIfAvailable(Collections::emptyList);
    final List<SoulPlugin> soulPlugins = pluginList.stream()
            .sorted(Comparator.comparingInt(SoulPlugin::getOrder)).collect(Collectors.toList());
    soulPlugins.forEach(soulPlugin -> log.info("load plugin:[{}] [{}]", soulPlugin.named(), soulPlugin.getClass().getName()));
    // 初始化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值