Solon2 开发之插件,一、插件

news/2024/12/1 12:58:13/

Solon Plugin 是框架的核心接口,简称“插件”。其本质是一个“生命周期”接口。它可让一个组件类参与程序的生命周期过程(这块看下:《应用启动过程与完整生命周期》):

@FunctionalInterface
public interface Plugin {//启动void start(AopContext context) throws Throwable;//预停止default void prestop() throws Throwable{}//停止default void stop() throws Throwable{}
}

目前对它的使用主要有两种方式:

1、做为具有生命周期的组件使用

做为注解组件,实例产生后会加入 SolonApp 实例的 plugins 列表,并会执行 start 接口,当程序停止时会触发 stop 接口。

这个方式,一般是需要对一些有生命周期的对象进行管理,比如通讯服务:

@Component
public class StompServerPlugin implements Plugin {@Inject("${server.stopm.port}")int port;StompServer server;@Overridepublic void start(AopContext context) throws Throwable {server = new StompServer(port);server.start();}@Overridepublic void stop() throws Throwable {server.stop();}
}

目前,这个方式较少使用(有大量的通讯服务或有生命周期对象已被封装成插件)。如无必要,也不建议使用。

2、做为一个模块生命周期的对接使用,为框架或业务提供扩展能力

生态体系里的所有插件的封装,都基于这个方式。也是最常使用的场景。

  • 在这个方式里,不能使用注解能力(为了绝对的安全)
  • 且需要使用配置文件申明插件(为了获得更早的执行时机)
public class XPluginImpl implements Plugin {@Overridepublic void start(AopContext context) throws Throwable {//...}@Overridepublic void stop() throws Throwable {}
}

具体看一下《插件扩展机制(Spi)》。


http://www.ppmy.cn/news/459757.html

相关文章

Two-stage RO: part 1

Two-stage RO: part 1 两阶段鲁棒优化问题(Two-stage Robust Optimization)两阶段鲁棒优化问题的详细解读Two-stage RO和Benders-dual cutting plane method 作者:刘兴禄,清华大学博士在读 2021.09.28 特别感谢Zeng Bo老师非常耐…

运行SOLOV2 心酸经历,实战帖

运行SOLOV2 心酸经历,实战帖 官方代码SOLOv2 mmdetectionv2.3Detectron2框架 SOLO v2作为单阶段实例分割新秀,在COCO数据集上的表现要优于Mask Rcnn(单从作者论文结果来看)。但是,最近在用SOLO v2跑自己的ssdd数据集时…

【ROS2入门】理解 ROS 2 Topics 话题

大家好,我是虎哥,从今天开始,我将花一段时间,开始将自己从ROS1切换到ROS2,在上一篇中,我们一起了解ROS 2中节点的功能以及与之交互的工具, 这一篇,我们主要会围绕ROS中另外一个重要的…

一文搞懂ROS2的spin_some, spin和ROS的spinOnce

目录 写在前面 1. ROS里的spin和spinOnce 1.1 回调机制浅析 1.2 为什么订阅话题时要指定queue_size? 1.3 设置queue_size的小技巧 1.4 spin和spinOnce用法总结: 2. ROS2里的spin_some和spin 2.1 揣摩一下spin和spin_some的官方注释 2.2 spin_some的一点小…

实例分割SOLO SOLOv2环境配置(ubuntu20.04 + miniconda)

SOLO & SOLOv2环境配置 如果说实例分割绕不开Mask R-CNN,那么SOLOv2作者提到的 Fast,High-quality 和 SOTA 等特性都让人忍不住想试试🧐 开源代码地址: https://github.com/WXinlong/SOLO 本文基本参照原作者开源代码中的流…

solo/solov2 训练自己的数据集并且测试

主要参考:很详细 安装环境、跑通并且测试请看之前的文章:环境安装、图片预测 数据准备 工具:labeme 打开图片手动标注,生成json文件,每张图片对应一json文件 将你标注的原图片以及对应的json文件分为train和val两个文件夹&#x…

soloV2保姆级教程(含环境配置,训练自己的数据集,代码逻辑分析等。能踩得坑都踩了....)更新ing

序言 环境:ubuntu18.04 cuda11.1 显卡3050 pytorch1.9 代码链接: GitHub - aim-uofa/AdelaiDet: AdelaiDet is an open source toolbox for multiple instance-level detection and recognition tasks. 论文解读可参考这位博主: SOLOv2…

SOLOV2训练教学

Github: https://github.com/WXinlong/SOLO 我的操作系统是Ubuntu18.04,本文将会分成以下部分: 创建数据集修改config模型训练可视化Mask结果模型评估推理预测推理优化 首先安装一些基本库,可参考官方安装说明 $ git clone https://github…