Solon 框架详解(五)- Solon扩展机制之Solon Plugin

本文深入探讨了Solon框架的扩展机制,介绍了如何通过SolonPlugin实现自定义插件,包括配置方法、代码实现及示例。展示了Solon在应用启动过程中的扩展点和插件加载流程。

Solon详解系列文章:
Solon详解(一)- 快速入门
Solon详解(二)- Solon的核心
Solon详解(三)- Solon的web开发
Solon详解(四)- Solon的事务传播机制
Solon详解(五)- Solon扩展机制之Solon Plugin
Solon详解(六)- Solon的校验框架使用、定制与扩展
Solon详解(七)- Solon Ioc 的注解对比Spring及JSR330
Solon详解(八)- Solon的缓存框架使用和定制
Solon详解(九)- 渲染控制之定制统一的接口输出
Solon详解(十)- 怎么用 Solon 开发基于 undertow jsp tld 的项目?

Solon 中也有一种非常解耦的扩展机制:Solon Plugin。这种扩展机制和Spring Factories像,和java SPI也很像。

一、Solon 中的扩展机制

在Solon的扩展插件加载机制,是在 META-INF/solon/{packname}.properties 文件中配置Plugin的实现类名称和优先级别,然后在程序中读取这些配置文件并实例化。这种自定义的SPI机制是Solon Plugin扩展实现的基础。

具体在扩展项目添加申明如下:

  • 添加配置:src/main/resources/META-INF/solon/{packname}.properties
    • 使用包做为文件名,是为了便于识别,且可避免冲突
  • 配置内容:
solon.plugin={Plugin impl}  #插件实现类
solon.plugin.priority=9      #加载优先级,越大越优先;默认不用配置

Plugin的作用:

在应用启动过程中,在特定的序顺位置,获取运行权限;进而进行框架扩展。

二、扩展示例,插件:solon.extend.aspect

这个插件,是为Solon提供 @Dao@Service 扩展注解,进而实现class的动态代理能力;基于ASM实现,但算是比较克制,暂时没加别的功能。本例完整的项目源码:https://gitee.com/noear/solon/tree/master/_extend/solon.extend.aspect,此处主要展示与扩展机制有关系的代码和配置。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值