当前位置: 首页 > news >正文

Solon2 开发之插件,一、插件

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.lryc.cn/news/6206.html

相关文章:

  • 使用nvm管理node
  • Linux
  • GB28181-2022注册注销基本要求、注册重定向解读和技术实现
  • 2023年二建报考条件是什么?考试考什么?来考网
  • vite+vue3搭建的工程热更新失效问题
  • Hazel游戏引擎(001-003)
  • 耗时一个星期整理的APP自动化测试工具大全
  • 算法设计与分析(屈婉玲)视频笔记day2
  • 14-PHP使用过的函数 131-140
  • 【第39天】实现一个冒泡排序
  • 「2」线性代数(期末复习)
  • 动态规划专题——背包问题
  • 数据的分组聚合
  • 【Airplay_BCT】Bonjour conformance tests苹果IOT
  • 开发微服务电商项目演示(五)
  • Git删除大文件历史记录
  • Seata-Server分布式事务原理加源码(一) - 微服务之分布式事务原理
  • 【ZooKeeper】zookeeper源码9-ZooKeeper读写流程源码分析
  • Python实现批量导入xlsx数据1000条
  • Ubuntu20.04安装redis与远程连接
  • SAS应用入门学习笔记5
  • PHP新特性集合
  • 【开发环境配置】--Python3的安装
  • postman实现接口测试详细教程
  • 使用crontab执行定时任务
  • 剑指 Offer 56 - II. 数组中数字出现的次数 II
  • C语言学习笔记(八): 自定义数据类型
  • Video Speed Controller谷歌视频加速插件——16倍速
  • VSCode 的下载安装及基本使用
  • 【操作系统】磁盘IO常见性能指标和分析工具实战